2 SET pg_hint_plan.enable_hint TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
6 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
8 ------------------------------------------------
10 Merge Cond: (t1.c1 = t2.c1)
12 Merge Cond: (t1.c1 = t4.c1)
14 Merge Cond: (t1.c1 = t3.c1)
15 -> Index Scan using t1_i1 on t1
16 -> Index Scan using t3_i1 on t3
17 -> Index Scan using t4_i1 on t4
24 ---- No. L-1-1 specified pattern of the object name
27 /*+Leading(t4 t2 t3 t1)*/
28 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;
37 ------------------------------------------------------
39 Merge Cond: (t1.c1 = t2.c1)
40 -> Index Scan using t1_i1 on t1
44 Hash Cond: (t3.c1 = t2.c1)
48 Hash Cond: (t4.c1 = t2.c1)
55 /*+Leading(t4 t2 t3 t1)*/
56 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1, s1.t2 t_2, s1.t3 t_3, s1.t4 t_4 WHERE t_1.c1 = t_2.c1 AND t_1.c1 = t_3.c1 AND t_1.c1 = t_4.c1;
65 ----------------------------------------------------
67 Merge Cond: (t_1.c1 = t_2.c1)
69 Merge Cond: (t_1.c1 = t_4.c1)
71 Merge Cond: (t_1.c1 = t_3.c1)
72 -> Index Scan using t1_i1 on t1 t_1
73 -> Index Scan using t3_i1 on t3 t_3
74 -> Index Scan using t4_i1 on t4 t_4
81 /*+Leading(t_4 t_2 t_3 t_1)*/
82 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1, s1.t2 t_2, s1.t3 t_3, s1.t4 t_4 WHERE t_1.c1 = t_2.c1 AND t_1.c1 = t_3.c1 AND t_1.c1 = t_4.c1;
85 Leading(t_4 t_2 t_3 t_1)
91 --------------------------------------------------------
93 Merge Cond: (t_1.c1 = t_2.c1)
94 -> Index Scan using t1_i1 on t1 t_1
98 Hash Cond: (t_3.c1 = t_2.c1)
102 Hash Cond: (t_4.c1 = t_2.c1)
103 -> Seq Scan on t4 t_4
105 -> Seq Scan on t2 t_2
109 ---- No. L-1-2 specified schema name in the hint option
112 /*+Leading(t4 t2 t3 t1)*/
113 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;
122 ------------------------------------------------------
124 Merge Cond: (t1.c1 = t2.c1)
125 -> Index Scan using t1_i1 on t1
129 Hash Cond: (t3.c1 = t2.c1)
133 Hash Cond: (t4.c1 = t2.c1)
140 /*+Leading(s1.t4 s1.t2 s1.t3 s1.t1)*/
141 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;
145 Leading(s1.t4 s1.t2 s1.t3 s1.t1)
150 ------------------------------------------------
152 Merge Cond: (t1.c1 = t2.c1)
154 Merge Cond: (t1.c1 = t4.c1)
156 Merge Cond: (t1.c1 = t3.c1)
157 -> Index Scan using t1_i1 on t1
158 -> Index Scan using t3_i1 on t3
159 -> Index Scan using t4_i1 on t4
166 ---- No. L-1-3 table doesn't exist in the hint option
169 /*+Leading(t4 t2 t3 t1)*/
170 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;
179 ------------------------------------------------------
181 Merge Cond: (t1.c1 = t2.c1)
182 -> Index Scan using t1_i1 on t1
186 Hash Cond: (t3.c1 = t2.c1)
190 Hash Cond: (t4.c1 = t2.c1)
197 /*+Leading(t5 t2 t3 t1)*/
198 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;
207 ------------------------------------------------
209 Merge Cond: (t1.c1 = t2.c1)
211 Merge Cond: (t1.c1 = t4.c1)
213 Merge Cond: (t1.c1 = t3.c1)
214 -> Index Scan using t1_i1 on t1
215 -> Index Scan using t3_i1 on t3
216 -> Index Scan using t4_i1 on t4
223 ---- No. L-1-4 conflict table name
226 /*+Leading(t4 t2 t3 t1)*/
227 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;
236 ------------------------------------------------------
238 Merge Cond: (t1.c1 = t2.c1)
239 -> Index Scan using t1_i1 on t1
243 Hash Cond: (t3.c1 = t2.c1)
247 Hash Cond: (t4.c1 = t2.c1)
254 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2.t1.c1;
256 ------------------------------------------------
258 Merge Cond: (s1.t1.c1 = s2.t1.c1)
260 Merge Cond: (s1.t1.c1 = t2.c1)
262 Merge Cond: (s1.t1.c1 = t3.c1)
263 -> Index Scan using t1_i1 on t1
264 -> Index Scan using t3_i1 on t3
265 -> Index Scan using t2_i1 on t2
271 /*+Leading(t1 t2 t3 t1)*/
272 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2.t1.c1;
273 INFO: hint syntax error at or near "Leading(t1 t2 t3 t1)"
274 DETAIL: Relation name "t1" is ambiguous.
283 ------------------------------------------------
285 Merge Cond: (s1.t1.c1 = s2.t1.c1)
287 Merge Cond: (s1.t1.c1 = t2.c1)
289 Merge Cond: (s1.t1.c1 = t3.c1)
290 -> Index Scan using t1_i1 on t1
291 -> Index Scan using t3_i1 on t3
292 -> Index Scan using t2_i1 on t2
298 /*+Leading(s1.t1 t2 t3 s2.t1)*/
299 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2.t1.c1;
303 Leading(s1.t1 t2 t3 s2.t1)
308 ------------------------------------------------
310 Merge Cond: (s1.t1.c1 = s2.t1.c1)
312 Merge Cond: (s1.t1.c1 = t2.c1)
314 Merge Cond: (s1.t1.c1 = t3.c1)
315 -> Index Scan using t1_i1 on t1
316 -> Index Scan using t3_i1 on t3
317 -> Index Scan using t2_i1 on t2
323 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 s2t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2t1.c1;
325 ------------------------------------------------
327 Merge Cond: (t1.c1 = s2t1.c1)
329 Merge Cond: (t1.c1 = t2.c1)
331 Merge Cond: (t1.c1 = t3.c1)
332 -> Index Scan using t1_i1 on t1
333 -> Index Scan using t3_i1 on t3
334 -> Index Scan using t2_i1 on t2
337 -> Seq Scan on t1 s2t1
340 /*+Leading(s2t1 t1 t3 t2)*/
341 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 s2t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2t1.c1;
344 Leading(s2t1 t1 t3 t2)
350 -------------------------------------------------------
352 Merge Cond: (t1.c1 = t2.c1)
355 Merge Cond: (t1.c1 = s2t1.c1)
356 -> Index Scan using t1_i1 on t1
357 -> Index Scan using t1_pkey on t1 s2t1
358 -> Index Scan using t3_i1 on t3
359 Index Cond: (c1 = t1.c1)
366 EXPLAIN (COSTS false) SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
368 -------------------------------------------------------------------
370 Merge Cond: (s1.t1.c1 = s1.t2.c1)
371 InitPlan 1 (returns $0)
374 Merge Cond: (s1.t1.c1 = s1.t2.c1)
376 Merge Cond: (s1.t1.c1 = s1.t4.c1)
378 Merge Cond: (s1.t1.c1 = s1.t3.c1)
379 -> Index Only Scan using t1_i1 on t1
380 -> Index Only Scan using t3_i1 on t3
381 -> Index Only Scan using t4_i1 on t4
386 Merge Cond: (s1.t1.c1 = s1.t4.c1)
388 Merge Cond: (s1.t1.c1 = s1.t3.c1)
389 -> Index Scan using t1_i1 on t1
390 -> Index Scan using t3_i1 on t3
391 -> Index Scan using t4_i1 on t4
397 /*+Leading(t4 t2 t3 t1)*/
398 EXPLAIN (COSTS false) SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
407 --------------------------------------------------------------------------
409 Merge Cond: (s1.t1.c1 = s1.t2.c1)
410 InitPlan 1 (returns $0)
413 Merge Cond: (s1.t1.c1 = s1.t2.c1)
414 -> Index Only Scan using t1_i1 on t1
418 Hash Cond: (s1.t3.c1 = s1.t2.c1)
422 Hash Cond: (s1.t4.c1 = s1.t2.c1)
426 -> Index Scan using t1_i1 on t1
430 Hash Cond: (s1.t3.c1 = s1.t2.c1)
434 Hash Cond: (s1.t4.c1 = s1.t2.c1)
440 /*+Leading(st1 st2 st3 st4)Leading(t4 t2 t3 t1)*/
441 EXPLAIN (COSTS false) SELECT *, (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2, s1.t3 st3, s1.t4 st4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
444 Leading(st1 st2 st3 st4)
451 --------------------------------------------------------------------------------------------
453 Merge Cond: (t1.c1 = t2.c1)
454 -> Index Scan using t1_i1 on t1
458 Hash Cond: (t3.c1 = t2.c1)
462 Hash Cond: (t4.c1 = t2.c1)
469 One-Time Filter: ((t1.c1 = t2.c1) AND (t1.c1 = t3.c1) AND (t1.c1 = t4.c1))
473 -> Seq Scan on t1 st1
475 -> Seq Scan on t2 st2
477 -> Seq Scan on t3 st3
479 -> Seq Scan on t4 st4
483 ---- No. L-1-5 conflict table name
486 /*+Leading(t4 t2 t3 t1)*/
487 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;
496 ------------------------------------------------------
498 Merge Cond: (t1.c1 = t2.c1)
499 -> Index Scan using t1_i1 on t1
503 Hash Cond: (t3.c1 = t2.c1)
507 Hash Cond: (t4.c1 = t2.c1)
514 /*+Leading(t4 t2 t3 t1 t4)*/
515 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;
516 INFO: hint syntax error at or near "Leading(t4 t2 t3 t1 t4)"
517 DETAIL: Relation name "t4" is duplicated.
523 Leading(t4 t2 t3 t1 t4)
526 ------------------------------------------------
528 Merge Cond: (t1.c1 = t2.c1)
530 Merge Cond: (t1.c1 = t4.c1)
532 Merge Cond: (t1.c1 = t3.c1)
533 -> Index Scan using t1_i1 on t1
534 -> Index Scan using t3_i1 on t3
535 -> Index Scan using t4_i1 on t4
541 /*+Leading(t4 t2 t3 t4)*/
542 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;
543 INFO: hint syntax error at or near "Leading(t4 t2 t3 t4)"
544 DETAIL: Relation name "t4" is duplicated.
553 ------------------------------------------------
555 Merge Cond: (t1.c1 = t2.c1)
557 Merge Cond: (t1.c1 = t4.c1)
559 Merge Cond: (t1.c1 = t3.c1)
560 -> Index Scan using t1_i1 on t1
561 -> Index Scan using t3_i1 on t3
562 -> Index Scan using t4_i1 on t4
569 /*+Leading(t4 t2 t3 t1 t4 t2 t3 t1)*/
570 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;
571 INFO: hint syntax error at or near "Leading(t4 t2 t3 t1 t4 t2 t3 t1)"
572 DETAIL: Relation name "t4" is duplicated.
578 Leading(t4 t2 t3 t1 t4 t2 t3 t1)
581 ------------------------------------------------
583 Merge Cond: (t1.c1 = t2.c1)
585 Merge Cond: (t1.c1 = t4.c1)
587 Merge Cond: (t1.c1 = t3.c1)
588 -> Index Scan using t1_i1 on t1
589 -> Index Scan using t3_i1 on t3
590 -> Index Scan using t4_i1 on t4
596 /*+Leading(t4 t2 t2 t4)*/
597 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;
598 INFO: hint syntax error at or near "Leading(t4 t2 t2 t4)"
599 DETAIL: Relation name "t2" is duplicated.
608 ------------------------------------------------
610 Merge Cond: (t1.c1 = t2.c1)
612 Merge Cond: (t1.c1 = t4.c1)
614 Merge Cond: (t1.c1 = t3.c1)
615 -> Index Scan using t1_i1 on t1
616 -> Index Scan using t3_i1 on t3
617 -> Index Scan using t4_i1 on t4
624 ---- No. L-1-6 object type for the hint
627 /*+Leading(t4 t2 t3 t1)*/
628 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;
637 ------------------------------------------------------
639 Merge Cond: (t1.c1 = t2.c1)
640 -> Index Scan using t1_i1 on t1
644 Hash Cond: (t3.c1 = t2.c1)
648 Hash Cond: (t4.c1 = t2.c1)
655 EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2, s1.p1 t3, s1.p1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
657 ---------------------------------------------------
659 Hash Cond: (t1.c1 = t4.c1)
661 Hash Cond: (t1.c1 = t3.c1)
663 Hash Cond: (t1.c1 = t2.c1)
666 -> Seq Scan on p1c1 t1
667 -> Seq Scan on p1c2 t1
668 -> Seq Scan on p1c3 t1
672 -> Seq Scan on p1c1 t2
673 -> Seq Scan on p1c2 t2
674 -> Seq Scan on p1c3 t2
678 -> Seq Scan on p1c1 t3
679 -> Seq Scan on p1c2 t3
680 -> Seq Scan on p1c3 t3
684 -> Seq Scan on p1c1 t4
685 -> Seq Scan on p1c2 t4
686 -> Seq Scan on p1c3 t4
689 /*+Leading(t4 t3 t2 t1)*/
690 EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2, s1.p1 t3, s1.p1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
699 ---------------------------------------------------
701 Hash Cond: (t2.c1 = t1.c1)
703 Hash Cond: (t3.c1 = t2.c1)
705 Hash Cond: (t3.c1 = t4.c1)
708 -> Seq Scan on p1c1 t3
709 -> Seq Scan on p1c2 t3
710 -> Seq Scan on p1c3 t3
714 -> Seq Scan on p1c1 t4
715 -> Seq Scan on p1c2 t4
716 -> Seq Scan on p1c3 t4
720 -> Seq Scan on p1c1 t2
721 -> Seq Scan on p1c2 t2
722 -> Seq Scan on p1c3 t2
726 -> Seq Scan on p1c1 t1
727 -> Seq Scan on p1c2 t1
728 -> Seq Scan on p1c3 t1
732 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 t1, s1.ul1 t2, s1.ul1 t3, s1.ul1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
734 --------------------------------------------
736 Hash Cond: (t1.c1 = t4.c1)
738 Hash Cond: (t1.c1 = t3.c1)
740 Hash Cond: (t1.c1 = t2.c1)
741 -> Seq Scan on ul1 t1
743 -> Seq Scan on ul1 t2
745 -> Seq Scan on ul1 t3
747 -> Seq Scan on ul1 t4
750 /*+Leading(t4 t3 t2 t1)*/
751 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 t1, s1.ul1 t2, s1.ul1 t3, s1.ul1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
760 --------------------------------------------
762 Hash Cond: (t2.c1 = t1.c1)
764 Hash Cond: (t3.c1 = t2.c1)
766 Hash Cond: (t3.c1 = t4.c1)
767 -> Seq Scan on ul1 t3
769 -> Seq Scan on ul1 t4
771 -> Seq Scan on ul1 t2
773 -> Seq Scan on ul1 t1
777 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
778 NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "tm1_pkey" for table "tm1"
779 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2, tm1 t3, tm1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
781 --------------------------------------------
783 Hash Cond: (t1.c1 = t4.c1)
785 Hash Cond: (t1.c1 = t3.c1)
787 Hash Cond: (t1.c1 = t2.c1)
788 -> Seq Scan on tm1 t1
790 -> Seq Scan on tm1 t2
792 -> Seq Scan on tm1 t3
794 -> Seq Scan on tm1 t4
797 /*+Leading(t4 t3 t2 t1)*/
798 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2, tm1 t3, tm1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
807 --------------------------------------------
809 Hash Cond: (t2.c1 = t1.c1)
811 Hash Cond: (t3.c1 = t2.c1)
813 Hash Cond: (t3.c1 = t4.c1)
814 -> Seq Scan on tm1 t3
816 -> Seq Scan on tm1 t4
818 -> Seq Scan on tm1 t2
820 -> Seq Scan on tm1 t1
824 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2, pg_catalog.pg_class t3, pg_catalog.pg_class t4 WHERE t1.oid = t2.oid AND t1.oid = t3.oid AND t1.oid = t4.oid;
826 -------------------------------------------------
828 Hash Cond: (t1.oid = t4.oid)
830 Hash Cond: (t1.oid = t3.oid)
832 Hash Cond: (t1.oid = t2.oid)
833 -> Seq Scan on pg_class t1
835 -> Seq Scan on pg_class t2
837 -> Seq Scan on pg_class t3
839 -> Seq Scan on pg_class t4
842 /*+Leading(t4 t3 t2 t1)*/
843 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2, pg_catalog.pg_class t3, pg_catalog.pg_class t4 WHERE t1.oid = t2.oid AND t1.oid = t3.oid AND t1.oid = t4.oid;
852 -------------------------------------------------
854 Hash Cond: (t2.oid = t1.oid)
856 Hash Cond: (t3.oid = t2.oid)
858 Hash Cond: (t3.oid = t4.oid)
859 -> Seq Scan on pg_class t3
861 -> Seq Scan on pg_class t4
863 -> Seq Scan on pg_class t2
865 -> Seq Scan on pg_class t1
871 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2, s1.f1() t3, s1.f1() t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
873 --------------------------------------------
875 Join Filter: (t1.c1 = t4.c1)
877 Join Filter: (t1.c1 = t3.c1)
879 Join Filter: (t1.c1 = t2.c1)
880 -> Function Scan on f1 t1
881 -> Function Scan on f1 t2
882 -> Function Scan on f1 t3
883 -> Function Scan on f1 t4
886 /*+Leading(t4 t3 t2 t1)*/
887 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2, s1.f1() t3, s1.f1() t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
896 --------------------------------------------
898 Join Filter: (t2.c1 = t1.c1)
900 Join Filter: (t3.c1 = t2.c1)
902 Join Filter: (t3.c1 = t4.c1)
903 -> Function Scan on f1 t3
904 -> Function Scan on f1 t4
905 -> Function Scan on f1 t2
906 -> Function Scan on f1 t1
910 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
912 -------------------------------------------------------
914 Join Filter: ("*VALUES*".column1 = t4.c1)
916 Join Filter: ("*VALUES*".column1 = t3.c1)
918 Hash Cond: (t2.c1 = "*VALUES*".column1)
921 -> Values Scan on "*VALUES*"
922 -> Index Scan using t3_i1 on t3
923 Index Cond: (c1 = t2.c1)
924 -> Index Scan using t4_i1 on t4
925 Index Cond: (c1 = t3.c1)
928 /*+Leading(t4 t3 t2 t1)*/
929 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
938 -------------------------------------------------------
940 Join Filter: ("*VALUES*".column1 = t4.c1)
942 Join Filter: ("*VALUES*".column1 = t3.c1)
944 Hash Cond: (t2.c1 = "*VALUES*".column1)
947 -> Values Scan on "*VALUES*"
948 -> Index Scan using t3_i1 on t3
949 Index Cond: (c1 = t2.c1)
950 -> Index Scan using t4_i1 on t4
951 Index Cond: (c1 = t3.c1)
955 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT st1.c1 FROM s1.t1 st1, s1.t1 st2, s1.t1 st3, s1.t1 st4 WHERE st1.c1 = st2.c1 AND st1.c1 = st3.c1 AND st1.c1 = st4.c1) SELECT * FROM c1 ct1, c1 ct2, c1 ct3, c1 ct4 WHERE ct1.c1 = ct2.c1 AND ct1.c1 = ct3.c1 AND ct1.c1 = ct4.c1;
957 ----------------------------------------------------
959 Merge Cond: (ct1.c1 = ct3.c1)
962 Hash Cond: (st1.c1 = st4.c1)
964 Hash Cond: (st1.c1 = st3.c1)
966 Hash Cond: (st1.c1 = st2.c1)
967 -> Seq Scan on t1 st1
969 -> Seq Scan on t1 st2
971 -> Seq Scan on t1 st3
973 -> Seq Scan on t1 st4
975 Merge Cond: (ct1.c1 = ct2.c1)
978 -> CTE Scan on c1 ct1
981 -> CTE Scan on c1 ct2
984 Merge Cond: (ct3.c1 = ct4.c1)
987 -> CTE Scan on c1 ct3
990 -> CTE Scan on c1 ct4
993 /*+Leading(ct4 ct3 ct2 ct1)Leading(st4 st3 st2 st1)*/
994 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT st1.c1 FROM s1.t1 st1, s1.t1 st2, s1.t1 st3, s1.t1 st4 WHERE st1.c1 = st2.c1 AND st1.c1 = st3.c1 AND st1.c1 = st4.c1) SELECT * FROM c1 ct1, c1 ct2, c1 ct3, c1 ct4 WHERE ct1.c1 = ct2.c1 AND ct1.c1 = ct3.c1 AND ct1.c1 = ct4.c1;
997 Leading(ct4 ct3 ct2 ct1)
998 Leading(st4 st3 st2 st1)
1004 ---------------------------------------------------------
1006 Merge Cond: (ct1.c1 = ct2.c1)
1009 Hash Cond: (st2.c1 = st1.c1)
1011 Hash Cond: (st3.c1 = st2.c1)
1013 Hash Cond: (st3.c1 = st4.c1)
1014 -> Seq Scan on t1 st3
1016 -> Seq Scan on t1 st4
1018 -> Seq Scan on t1 st2
1020 -> Seq Scan on t1 st1
1023 -> CTE Scan on c1 ct1
1026 Merge Cond: (ct2.c1 = ct3.c1)
1029 -> CTE Scan on c1 ct2
1032 Merge Cond: (ct3.c1 = ct4.c1)
1035 -> CTE Scan on c1 ct3
1038 -> CTE Scan on c1 ct4
1042 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2, s1.v1 t3, s1.v1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
1044 ----------------------------------------------
1046 Hash Cond: (v1t1.c1 = v1t1.c1)
1048 Hash Cond: (v1t1.c1 = v1t1.c1)
1050 Hash Cond: (v1t1.c1 = v1t1.c1)
1051 -> Seq Scan on t1 v1t1
1053 -> Seq Scan on t1 v1t1
1055 -> Seq Scan on t1 v1t1
1057 -> Seq Scan on t1 v1t1
1060 /*+Leading(t4 t3 t2 t1)*/
1061 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2, s1.v1 t3, s1.v1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
1065 Leading(t4 t3 t2 t1)
1070 ----------------------------------------------
1072 Hash Cond: (v1t1.c1 = v1t1.c1)
1074 Hash Cond: (v1t1.c1 = v1t1.c1)
1076 Hash Cond: (v1t1.c1 = v1t1.c1)
1077 -> Seq Scan on t1 v1t1
1079 -> Seq Scan on t1 v1t1
1081 -> Seq Scan on t1 v1t1
1083 -> Seq Scan on t1 v1t1
1086 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
1088 ---------------------------------------------
1090 Hash Cond: (v1t1.c1 = t4.c1)
1092 Hash Cond: (v1t1.c1 = v1t1_.c1)
1094 Hash Cond: (t3.c1 = v1t1.c1)
1097 -> Seq Scan on t1 v1t1
1099 -> Seq Scan on t1 v1t1_
1104 /*+Leading(t4 v1t1_ v1t1 t3)*/
1105 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
1108 Leading(t4 v1t1_ v1t1 t3)
1114 ----------------------------------------------
1116 Hash Cond: (v1t1.c1 = t3.c1)
1118 Hash Cond: (v1t1_.c1 = v1t1.c1)
1120 Hash Cond: (t4.c1 = v1t1_.c1)
1123 -> Seq Scan on t1 v1t1_
1125 -> Seq Scan on t1 v1t1
1131 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, (SELECT t4.c1 FROM s1.t4) st4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = st4.c1;
1133 ------------------------------------------------
1135 Merge Cond: (t1.c1 = t2.c1)
1137 Merge Cond: (t1.c1 = t4.c1)
1139 Merge Cond: (t1.c1 = t3.c1)
1140 -> Index Scan using t1_i1 on t1
1141 -> Index Scan using t3_i1 on t3
1142 -> Index Only Scan using t4_i1 on t4
1148 /*+Leading(st4 t2 t3 t1)*/
1149 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, (SELECT t4.c1 FROM s1.t4) st4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = st4.c1;
1153 Leading(st4 t2 t3 t1)
1158 ------------------------------------------------
1160 Merge Cond: (t1.c1 = t2.c1)
1162 Merge Cond: (t1.c1 = t4.c1)
1164 Merge Cond: (t1.c1 = t3.c1)
1165 -> Index Scan using t1_i1 on t1
1166 -> Index Scan using t3_i1 on t3
1167 -> Index Only Scan using t4_i1 on t4
1173 /*+Leading(t4 t2 t3 t1)*/
1174 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, (SELECT t4.c1 FROM s1.t4) st4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = st4.c1;
1177 Leading(t4 t2 t3 t1)
1183 ------------------------------------------------------
1185 Merge Cond: (t1.c1 = t2.c1)
1186 -> Index Scan using t1_i1 on t1
1190 Hash Cond: (t3.c1 = t2.c1)
1194 Hash Cond: (t4.c1 = t2.c1)
1201 ---- No. L-2-1 some complexity query blocks
1204 EXPLAIN (COSTS false)
1205 SELECT max(bmt1.c1), (
1206 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)'
1208 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)'
1210 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)'
1213 -------------------------------------------------------------------
1215 InitPlan 1 (returns $0)
1218 Join Filter: (b1t1.c1 = b1t4.c1)
1220 Join Filter: (b1t1.c1 = b1t3.c1)
1222 Join Filter: (b1t1.c1 = b1t2.c1)
1223 -> Tid Scan on t1 b1t1
1224 TID Cond: (ctid = '(1,1)'::tid)
1225 -> Seq Scan on t2 b1t2
1226 Filter: (ctid = '(1,1)'::tid)
1227 -> Tid Scan on t3 b1t3
1228 TID Cond: (ctid = '(1,1)'::tid)
1229 -> Tid Scan on t4 b1t4
1230 TID Cond: (ctid = '(1,1)'::tid)
1231 InitPlan 2 (returns $1)
1234 Join Filter: (b2t1.c1 = b2t4.c1)
1236 Join Filter: (b2t1.c1 = b2t3.c1)
1238 Join Filter: (b2t1.c1 = b2t2.c1)
1239 -> Tid Scan on t1 b2t1
1240 TID Cond: (ctid = '(1,1)'::tid)
1241 -> Seq Scan on t2 b2t2
1242 Filter: (ctid = '(1,1)'::tid)
1243 -> Tid Scan on t3 b2t3
1244 TID Cond: (ctid = '(1,1)'::tid)
1245 -> Tid Scan on t4 b2t4
1246 TID Cond: (ctid = '(1,1)'::tid)
1248 Join Filter: (bmt1.c1 = bmt4.c1)
1250 Join Filter: (bmt1.c1 = bmt3.c1)
1252 Join Filter: (bmt1.c1 = bmt2.c1)
1253 -> Tid Scan on t1 bmt1
1254 TID Cond: (ctid = '(1,1)'::tid)
1255 -> Seq Scan on t2 bmt2
1256 Filter: (ctid = '(1,1)'::tid)
1257 -> Tid Scan on t3 bmt3
1258 TID Cond: (ctid = '(1,1)'::tid)
1259 -> Tid Scan on t4 bmt4
1260 TID Cond: (ctid = '(1,1)'::tid)
1264 Leading(bmt1 bmt2 bmt3 bmt4)
1265 Leading(b1t2 b1t3 b1t4 b1t1)
1266 Leading(b2t3 b2t4 b2t1 b2t2)
1268 EXPLAIN (COSTS false)
1269 SELECT max(bmt1.c1), (
1270 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)'
1272 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)'
1274 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)'
1278 Leading(bmt1 bmt2 bmt3 bmt4)
1279 Leading(b1t2 b1t3 b1t4 b1t1)
1280 Leading(b2t3 b2t4 b2t1 b2t2)
1286 -------------------------------------------------------------------
1288 InitPlan 1 (returns $0)
1291 Join Filter: (b1t2.c1 = b1t1.c1)
1293 Join Filter: (b1t2.c1 = b1t4.c1)
1295 Join Filter: (b1t2.c1 = b1t3.c1)
1296 -> Seq Scan on t2 b1t2
1297 Filter: (ctid = '(1,1)'::tid)
1298 -> Tid Scan on t3 b1t3
1299 TID Cond: (ctid = '(1,1)'::tid)
1300 -> Tid Scan on t4 b1t4
1301 TID Cond: (ctid = '(1,1)'::tid)
1302 -> Tid Scan on t1 b1t1
1303 TID Cond: (ctid = '(1,1)'::tid)
1304 InitPlan 2 (returns $1)
1307 Join Filter: (b2t1.c1 = b2t2.c1)
1309 Join Filter: (b2t3.c1 = b2t1.c1)
1311 Join Filter: (b2t3.c1 = b2t4.c1)
1312 -> Tid Scan on t3 b2t3
1313 TID Cond: (ctid = '(1,1)'::tid)
1314 -> Tid Scan on t4 b2t4
1315 TID Cond: (ctid = '(1,1)'::tid)
1316 -> Tid Scan on t1 b2t1
1317 TID Cond: (ctid = '(1,1)'::tid)
1318 -> Seq Scan on t2 b2t2
1319 Filter: (ctid = '(1,1)'::tid)
1321 Join Filter: (bmt1.c1 = bmt4.c1)
1323 Join Filter: (bmt1.c1 = bmt3.c1)
1325 Join Filter: (bmt1.c1 = bmt2.c1)
1326 -> Tid Scan on t1 bmt1
1327 TID Cond: (ctid = '(1,1)'::tid)
1328 -> Seq Scan on t2 bmt2
1329 Filter: (ctid = '(1,1)'::tid)
1330 -> Tid Scan on t3 bmt3
1331 TID Cond: (ctid = '(1,1)'::tid)
1332 -> Tid Scan on t4 bmt4
1333 TID Cond: (ctid = '(1,1)'::tid)
1337 EXPLAIN (COSTS false)
1338 SELECT max(bmt1.c1), (
1339 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)'
1341 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)'
1343 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)'
1345 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)'
1348 -------------------------------------------------------------------
1350 InitPlan 1 (returns $0)
1353 Join Filter: (b1t1.c1 = b1t4.c1)
1355 Join Filter: (b1t1.c1 = b1t3.c1)
1357 Join Filter: (b1t1.c1 = b1t2.c1)
1358 -> Tid Scan on t1 b1t1
1359 TID Cond: (ctid = '(1,1)'::tid)
1360 -> Seq Scan on t2 b1t2
1361 Filter: (ctid = '(1,1)'::tid)
1362 -> Tid Scan on t3 b1t3
1363 TID Cond: (ctid = '(1,1)'::tid)
1364 -> Tid Scan on t4 b1t4
1365 TID Cond: (ctid = '(1,1)'::tid)
1366 InitPlan 2 (returns $1)
1369 Join Filter: (b2t1.c1 = b2t4.c1)
1371 Join Filter: (b2t1.c1 = b2t3.c1)
1373 Join Filter: (b2t1.c1 = b2t2.c1)
1374 -> Tid Scan on t1 b2t1
1375 TID Cond: (ctid = '(1,1)'::tid)
1376 -> Seq Scan on t2 b2t2
1377 Filter: (ctid = '(1,1)'::tid)
1378 -> Tid Scan on t3 b2t3
1379 TID Cond: (ctid = '(1,1)'::tid)
1380 -> Tid Scan on t4 b2t4
1381 TID Cond: (ctid = '(1,1)'::tid)
1382 InitPlan 3 (returns $2)
1385 Join Filter: (b3t1.c1 = b3t4.c1)
1387 Join Filter: (b3t1.c1 = b3t3.c1)
1389 Join Filter: (b3t1.c1 = b3t2.c1)
1390 -> Tid Scan on t1 b3t1
1391 TID Cond: (ctid = '(1,1)'::tid)
1392 -> Seq Scan on t2 b3t2
1393 Filter: (ctid = '(1,1)'::tid)
1394 -> Tid Scan on t3 b3t3
1395 TID Cond: (ctid = '(1,1)'::tid)
1396 -> Tid Scan on t4 b3t4
1397 TID Cond: (ctid = '(1,1)'::tid)
1399 Join Filter: (bmt1.c1 = bmt4.c1)
1401 Join Filter: (bmt1.c1 = bmt3.c1)
1403 Join Filter: (bmt1.c1 = bmt2.c1)
1404 -> Tid Scan on t1 bmt1
1405 TID Cond: (ctid = '(1,1)'::tid)
1406 -> Seq Scan on t2 bmt2
1407 Filter: (ctid = '(1,1)'::tid)
1408 -> Tid Scan on t3 bmt3
1409 TID Cond: (ctid = '(1,1)'::tid)
1410 -> Tid Scan on t4 bmt4
1411 TID Cond: (ctid = '(1,1)'::tid)
1415 Leading(bmt1 bmt2 bmt3 bmt4)
1416 Leading(b1t2 b1t3 b1t4 b1t1)
1417 Leading(b2t3 b2t4 b2t1 b2t2)
1418 Leading(b3t4 b3t1 b3t2 b3t3)
1420 EXPLAIN (COSTS false)
1421 SELECT max(bmt1.c1), (
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)'
1426 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)'
1428 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)'
1432 Leading(bmt1 bmt2 bmt3 bmt4)
1433 Leading(b1t2 b1t3 b1t4 b1t1)
1434 Leading(b2t3 b2t4 b2t1 b2t2)
1435 Leading(b3t4 b3t1 b3t2 b3t3)
1441 -------------------------------------------------------------------
1443 InitPlan 1 (returns $0)
1446 Join Filter: (b1t2.c1 = b1t1.c1)
1448 Join Filter: (b1t2.c1 = b1t4.c1)
1450 Join Filter: (b1t2.c1 = b1t3.c1)
1451 -> Seq Scan on t2 b1t2
1452 Filter: (ctid = '(1,1)'::tid)
1453 -> Tid Scan on t3 b1t3
1454 TID Cond: (ctid = '(1,1)'::tid)
1455 -> Tid Scan on t4 b1t4
1456 TID Cond: (ctid = '(1,1)'::tid)
1457 -> Tid Scan on t1 b1t1
1458 TID Cond: (ctid = '(1,1)'::tid)
1459 InitPlan 2 (returns $1)
1462 Join Filter: (b2t1.c1 = b2t2.c1)
1464 Join Filter: (b2t3.c1 = b2t1.c1)
1466 Join Filter: (b2t3.c1 = b2t4.c1)
1467 -> Tid Scan on t3 b2t3
1468 TID Cond: (ctid = '(1,1)'::tid)
1469 -> Tid Scan on t4 b2t4
1470 TID Cond: (ctid = '(1,1)'::tid)
1471 -> Tid Scan on t1 b2t1
1472 TID Cond: (ctid = '(1,1)'::tid)
1473 -> Seq Scan on t2 b2t2
1474 Filter: (ctid = '(1,1)'::tid)
1475 InitPlan 3 (returns $2)
1478 Join Filter: (b3t1.c1 = b3t3.c1)
1480 Join Filter: (b3t1.c1 = b3t2.c1)
1482 Join Filter: (b3t1.c1 = b3t4.c1)
1483 -> Tid Scan on t1 b3t1
1484 TID Cond: (ctid = '(1,1)'::tid)
1485 -> Tid Scan on t4 b3t4
1486 TID Cond: (ctid = '(1,1)'::tid)
1487 -> Seq Scan on t2 b3t2
1488 Filter: (ctid = '(1,1)'::tid)
1489 -> Tid Scan on t3 b3t3
1490 TID Cond: (ctid = '(1,1)'::tid)
1492 Join Filter: (bmt1.c1 = bmt4.c1)
1494 Join Filter: (bmt1.c1 = bmt3.c1)
1496 Join Filter: (bmt1.c1 = bmt2.c1)
1497 -> Tid Scan on t1 bmt1
1498 TID Cond: (ctid = '(1,1)'::tid)
1499 -> Seq Scan on t2 bmt2
1500 Filter: (ctid = '(1,1)'::tid)
1501 -> Tid Scan on t3 bmt3
1502 TID Cond: (ctid = '(1,1)'::tid)
1503 -> Tid Scan on t4 bmt4
1504 TID Cond: (ctid = '(1,1)'::tid)
1508 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)';
1510 -----------------------------------------------------------
1513 Join Filter: (bmt1.c1 = bmt4.c1)
1515 Join Filter: (bmt1.c1 = bmt3.c1)
1517 Join Filter: (bmt1.c1 = bmt2.c1)
1518 -> Tid Scan on t1 bmt1
1519 TID Cond: (ctid = '(1,1)'::tid)
1520 -> Seq Scan on t2 bmt2
1521 Filter: (ctid = '(1,1)'::tid)
1522 -> Tid Scan on t3 bmt3
1523 TID Cond: (ctid = '(1,1)'::tid)
1524 -> Tid Scan on t4 bmt4
1525 TID Cond: (ctid = '(1,1)'::tid)
1529 Leading(bmt4 bmt3 bmt2 bmt1)
1531 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)';
1534 Leading(bmt4 bmt3 bmt2 bmt1)
1540 -----------------------------------------------------------
1543 Join Filter: (bmt2.c1 = bmt1.c1)
1545 Join Filter: (bmt3.c1 = bmt2.c1)
1547 Join Filter: (bmt3.c1 = bmt4.c1)
1548 -> Tid Scan on t3 bmt3
1549 TID Cond: (ctid = '(1,1)'::tid)
1550 -> Tid Scan on t4 bmt4
1551 TID Cond: (ctid = '(1,1)'::tid)
1552 -> Seq Scan on t2 bmt2
1553 Filter: (ctid = '(1,1)'::tid)
1554 -> Tid Scan on t1 bmt1
1555 TID Cond: (ctid = '(1,1)'::tid)
1559 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)';
1561 -----------------------------------------------------------
1564 Join Filter: (bmt1.c1 = bmt4.c1)
1566 Join Filter: (bmt1.c1 = bmt3.c1)
1568 Join Filter: (bmt1.c1 = bmt2.c1)
1569 -> Tid Scan on t1 bmt1
1570 TID Cond: (ctid = '(1,1)'::tid)
1571 -> Seq Scan on t2 bmt2
1572 Filter: (ctid = '(1,1)'::tid)
1573 -> Tid Scan on t3 bmt3
1574 TID Cond: (ctid = '(1,1)'::tid)
1575 -> Tid Scan on t4 bmt4
1576 TID Cond: (ctid = '(1,1)'::tid)
1580 Leading(bmt4 bmt3 bmt2 bmt1)
1582 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)';
1585 Leading(bmt4 bmt3 bmt2 bmt1)
1591 -----------------------------------------------------------
1594 Join Filter: (bmt2.c1 = bmt1.c1)
1596 Join Filter: (bmt3.c1 = bmt2.c1)
1598 Join Filter: (bmt3.c1 = bmt4.c1)
1599 -> Tid Scan on t3 bmt3
1600 TID Cond: (ctid = '(1,1)'::tid)
1601 -> Tid Scan on t4 bmt4
1602 TID Cond: (ctid = '(1,1)'::tid)
1603 -> Seq Scan on t2 bmt2
1604 Filter: (ctid = '(1,1)'::tid)
1605 -> Tid Scan on t1 bmt1
1606 TID Cond: (ctid = '(1,1)'::tid)
1610 EXPLAIN (COSTS false)
1611 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)'
1613 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)'
1615 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)'
1619 -------------------------------------------------------------------
1621 InitPlan 1 (returns $0)
1624 Join Filter: (b1t1.c1 = b1t4.c1)
1626 Join Filter: (b1t1.c1 = b1t3.c1)
1628 Join Filter: (b1t1.c1 = b1t2.c1)
1629 -> Tid Scan on t1 b1t1
1630 TID Cond: (ctid = '(1,1)'::tid)
1631 -> Seq Scan on t2 b1t2
1632 Filter: (ctid = '(1,1)'::tid)
1633 -> Tid Scan on t3 b1t3
1634 TID Cond: (ctid = '(1,1)'::tid)
1635 -> Tid Scan on t4 b1t4
1636 TID Cond: (ctid = '(1,1)'::tid)
1637 InitPlan 2 (returns $1)
1640 Join Filter: (b2t1.c1 = b2t4.c1)
1642 Join Filter: (b2t1.c1 = b2t3.c1)
1644 Join Filter: (b2t1.c1 = b2t2.c1)
1645 -> Tid Scan on t1 b2t1
1646 TID Cond: (ctid = '(1,1)'::tid)
1647 -> Seq Scan on t2 b2t2
1648 Filter: (ctid = '(1,1)'::tid)
1649 -> Tid Scan on t3 b2t3
1650 TID Cond: (ctid = '(1,1)'::tid)
1651 -> Tid Scan on t4 b2t4
1652 TID Cond: (ctid = '(1,1)'::tid)
1654 Join Filter: (bmt1.c1 = bmt4.c1)
1656 Join Filter: (bmt1.c1 = bmt3.c1)
1658 Join Filter: (bmt1.c1 = bmt2.c1)
1659 -> Tid Scan on t1 bmt1
1660 TID Cond: (ctid = '(1,1)'::tid)
1661 Filter: ((c1 <> $0) AND (c1 <> $1))
1662 -> Seq Scan on t2 bmt2
1663 Filter: (ctid = '(1,1)'::tid)
1664 -> Tid Scan on t3 bmt3
1665 TID Cond: (ctid = '(1,1)'::tid)
1666 -> Tid Scan on t4 bmt4
1667 TID Cond: (ctid = '(1,1)'::tid)
1671 Leading(bmt1 bmt2 bmt3 bmt4)
1672 Leading(b1t2 b1t3 b1t4 b1t1)
1673 Leading(b2t3 b2t4 b2t1 b2t2)
1675 EXPLAIN (COSTS false)
1676 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)'
1678 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)'
1680 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)'
1685 Leading(bmt1 bmt2 bmt3 bmt4)
1686 Leading(b1t2 b1t3 b1t4 b1t1)
1687 Leading(b2t3 b2t4 b2t1 b2t2)
1693 -------------------------------------------------------------------
1695 InitPlan 1 (returns $0)
1698 Join Filter: (b1t2.c1 = b1t1.c1)
1700 Join Filter: (b1t2.c1 = b1t4.c1)
1702 Join Filter: (b1t2.c1 = b1t3.c1)
1703 -> Seq Scan on t2 b1t2
1704 Filter: (ctid = '(1,1)'::tid)
1705 -> Tid Scan on t3 b1t3
1706 TID Cond: (ctid = '(1,1)'::tid)
1707 -> Tid Scan on t4 b1t4
1708 TID Cond: (ctid = '(1,1)'::tid)
1709 -> Tid Scan on t1 b1t1
1710 TID Cond: (ctid = '(1,1)'::tid)
1711 InitPlan 2 (returns $1)
1714 Join Filter: (b2t1.c1 = b2t2.c1)
1716 Join Filter: (b2t3.c1 = b2t1.c1)
1718 Join Filter: (b2t3.c1 = b2t4.c1)
1719 -> Tid Scan on t3 b2t3
1720 TID Cond: (ctid = '(1,1)'::tid)
1721 -> Tid Scan on t4 b2t4
1722 TID Cond: (ctid = '(1,1)'::tid)
1723 -> Tid Scan on t1 b2t1
1724 TID Cond: (ctid = '(1,1)'::tid)
1725 -> Seq Scan on t2 b2t2
1726 Filter: (ctid = '(1,1)'::tid)
1728 Join Filter: (bmt1.c1 = bmt4.c1)
1730 Join Filter: (bmt1.c1 = bmt3.c1)
1732 Join Filter: (bmt1.c1 = bmt2.c1)
1733 -> Tid Scan on t1 bmt1
1734 TID Cond: (ctid = '(1,1)'::tid)
1735 Filter: ((c1 <> $0) AND (c1 <> $1))
1736 -> Seq Scan on t2 bmt2
1737 Filter: (ctid = '(1,1)'::tid)
1738 -> Tid Scan on t3 bmt3
1739 TID Cond: (ctid = '(1,1)'::tid)
1740 -> Tid Scan on t4 bmt4
1741 TID Cond: (ctid = '(1,1)'::tid)
1745 EXPLAIN (COSTS false)
1746 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)'
1748 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)'
1750 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)'
1752 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)'
1756 ------------------------------------------------------------------------------
1758 InitPlan 1 (returns $0)
1761 Join Filter: (b1t1.c1 = b1t4.c1)
1763 Join Filter: (b1t1.c1 = b1t3.c1)
1765 Join Filter: (b1t1.c1 = b1t2.c1)
1766 -> Tid Scan on t1 b1t1
1767 TID Cond: (ctid = '(1,1)'::tid)
1768 -> Seq Scan on t2 b1t2
1769 Filter: (ctid = '(1,1)'::tid)
1770 -> Tid Scan on t3 b1t3
1771 TID Cond: (ctid = '(1,1)'::tid)
1772 -> Tid Scan on t4 b1t4
1773 TID Cond: (ctid = '(1,1)'::tid)
1774 InitPlan 2 (returns $1)
1777 Join Filter: (b2t1.c1 = b2t4.c1)
1779 Join Filter: (b2t1.c1 = b2t3.c1)
1781 Join Filter: (b2t1.c1 = b2t2.c1)
1782 -> Tid Scan on t1 b2t1
1783 TID Cond: (ctid = '(1,1)'::tid)
1784 -> Seq Scan on t2 b2t2
1785 Filter: (ctid = '(1,1)'::tid)
1786 -> Tid Scan on t3 b2t3
1787 TID Cond: (ctid = '(1,1)'::tid)
1788 -> Tid Scan on t4 b2t4
1789 TID Cond: (ctid = '(1,1)'::tid)
1790 InitPlan 3 (returns $2)
1793 Join Filter: (b3t1.c1 = b3t4.c1)
1795 Join Filter: (b3t1.c1 = b3t3.c1)
1797 Join Filter: (b3t1.c1 = b3t2.c1)
1798 -> Tid Scan on t1 b3t1
1799 TID Cond: (ctid = '(1,1)'::tid)
1800 -> Seq Scan on t2 b3t2
1801 Filter: (ctid = '(1,1)'::tid)
1802 -> Tid Scan on t3 b3t3
1803 TID Cond: (ctid = '(1,1)'::tid)
1804 -> Tid Scan on t4 b3t4
1805 TID Cond: (ctid = '(1,1)'::tid)
1807 Join Filter: (bmt1.c1 = bmt4.c1)
1809 Join Filter: (bmt1.c1 = bmt3.c1)
1811 Join Filter: (bmt1.c1 = bmt2.c1)
1812 -> Tid Scan on t1 bmt1
1813 TID Cond: (ctid = '(1,1)'::tid)
1814 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1815 -> Seq Scan on t2 bmt2
1816 Filter: (ctid = '(1,1)'::tid)
1817 -> Tid Scan on t3 bmt3
1818 TID Cond: (ctid = '(1,1)'::tid)
1819 -> Tid Scan on t4 bmt4
1820 TID Cond: (ctid = '(1,1)'::tid)
1824 Leading(bmt1 bmt2 bmt3 bmt4)
1825 Leading(b1t2 b1t3 b1t4 b1t1)
1826 Leading(b2t3 b2t4 b2t1 b2t2)
1827 Leading(b3t4 b3t1 b3t2 b3t3)
1829 EXPLAIN (COSTS false)
1830 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)'
1832 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)'
1834 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)'
1836 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)'
1841 Leading(bmt1 bmt2 bmt3 bmt4)
1842 Leading(b1t2 b1t3 b1t4 b1t1)
1843 Leading(b2t3 b2t4 b2t1 b2t2)
1844 Leading(b3t4 b3t1 b3t2 b3t3)
1850 ------------------------------------------------------------------------------
1852 InitPlan 1 (returns $0)
1855 Join Filter: (b1t2.c1 = b1t1.c1)
1857 Join Filter: (b1t2.c1 = b1t4.c1)
1859 Join Filter: (b1t2.c1 = b1t3.c1)
1860 -> Seq Scan on t2 b1t2
1861 Filter: (ctid = '(1,1)'::tid)
1862 -> Tid Scan on t3 b1t3
1863 TID Cond: (ctid = '(1,1)'::tid)
1864 -> Tid Scan on t4 b1t4
1865 TID Cond: (ctid = '(1,1)'::tid)
1866 -> Tid Scan on t1 b1t1
1867 TID Cond: (ctid = '(1,1)'::tid)
1868 InitPlan 2 (returns $1)
1871 Join Filter: (b2t1.c1 = b2t2.c1)
1873 Join Filter: (b2t3.c1 = b2t1.c1)
1875 Join Filter: (b2t3.c1 = b2t4.c1)
1876 -> Tid Scan on t3 b2t3
1877 TID Cond: (ctid = '(1,1)'::tid)
1878 -> Tid Scan on t4 b2t4
1879 TID Cond: (ctid = '(1,1)'::tid)
1880 -> Tid Scan on t1 b2t1
1881 TID Cond: (ctid = '(1,1)'::tid)
1882 -> Seq Scan on t2 b2t2
1883 Filter: (ctid = '(1,1)'::tid)
1884 InitPlan 3 (returns $2)
1887 Join Filter: (b3t1.c1 = b3t3.c1)
1889 Join Filter: (b3t1.c1 = b3t2.c1)
1891 Join Filter: (b3t1.c1 = b3t4.c1)
1892 -> Tid Scan on t1 b3t1
1893 TID Cond: (ctid = '(1,1)'::tid)
1894 -> Tid Scan on t4 b3t4
1895 TID Cond: (ctid = '(1,1)'::tid)
1896 -> Seq Scan on t2 b3t2
1897 Filter: (ctid = '(1,1)'::tid)
1898 -> Tid Scan on t3 b3t3
1899 TID Cond: (ctid = '(1,1)'::tid)
1901 Join Filter: (bmt1.c1 = bmt4.c1)
1903 Join Filter: (bmt1.c1 = bmt3.c1)
1905 Join Filter: (bmt1.c1 = bmt2.c1)
1906 -> Tid Scan on t1 bmt1
1907 TID Cond: (ctid = '(1,1)'::tid)
1908 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1909 -> Seq Scan on t2 bmt2
1910 Filter: (ctid = '(1,1)'::tid)
1911 -> Tid Scan on t3 bmt3
1912 TID Cond: (ctid = '(1,1)'::tid)
1913 -> Tid Scan on t4 bmt4
1914 TID Cond: (ctid = '(1,1)'::tid)
1918 EXPLAIN (COSTS false)
1920 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)'
1923 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)'
1925 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1927 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)'
1932 -----------------------------------------------------------------------
1937 Join Filter: (b1t1.c1 = b1t4.c1)
1939 Join Filter: (b1t1.c1 = b1t3.c1)
1941 Join Filter: (b1t1.c1 = b1t2.c1)
1942 -> Tid Scan on t1 b1t1
1943 TID Cond: (ctid = '(1,1)'::tid)
1944 -> Seq Scan on t2 b1t2
1945 Filter: (ctid = '(1,1)'::tid)
1946 -> Tid Scan on t3 b1t3
1947 TID Cond: (ctid = '(1,1)'::tid)
1948 -> Tid Scan on t4 b1t4
1949 TID Cond: (ctid = '(1,1)'::tid)
1953 Join Filter: (b2t1.c1 = b2t4.c1)
1955 Join Filter: (b2t1.c1 = b2t3.c1)
1957 Join Filter: (b2t1.c1 = b2t2.c1)
1958 -> Tid Scan on t1 b2t1
1959 TID Cond: (ctid = '(1,1)'::tid)
1960 -> Seq Scan on t2 b2t2
1961 Filter: (ctid = '(1,1)'::tid)
1962 -> Tid Scan on t3 b2t3
1963 TID Cond: (ctid = '(1,1)'::tid)
1964 -> Tid Scan on t4 b2t4
1965 TID Cond: (ctid = '(1,1)'::tid)
1967 Join Filter: (bmt1.c1 = c2.c1)
1969 Join Filter: (bmt1.c1 = c1.c1)
1971 Join Filter: (bmt1.c1 = bmt4.c1)
1973 Join Filter: (bmt1.c1 = bmt3.c1)
1975 Join Filter: (bmt1.c1 = bmt2.c1)
1976 -> Tid Scan on t1 bmt1
1977 TID Cond: (ctid = '(1,1)'::tid)
1978 -> Seq Scan on t2 bmt2
1979 Filter: (ctid = '(1,1)'::tid)
1980 -> Tid Scan on t3 bmt3
1981 TID Cond: (ctid = '(1,1)'::tid)
1982 -> Tid Scan on t4 bmt4
1983 TID Cond: (ctid = '(1,1)'::tid)
1989 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1990 Leading(b1t2 b1t3 b1t4 b1t1)
1991 Leading(b2t3 b2t4 b2t1 b2t2)
1993 EXPLAIN (COSTS false)
1995 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)'
1998 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)'
2000 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2002 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)'
2008 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2009 Leading(b1t2 b1t3 b1t4 b1t1)
2010 Leading(b2t3 b2t4 b2t1 b2t2)
2016 -------------------------------------------------------------------
2021 Join Filter: (b1t2.c1 = b1t1.c1)
2023 Join Filter: (b1t2.c1 = b1t4.c1)
2025 Join Filter: (b1t2.c1 = b1t3.c1)
2026 -> Seq Scan on t2 b1t2
2027 Filter: (ctid = '(1,1)'::tid)
2028 -> Tid Scan on t3 b1t3
2029 TID Cond: (ctid = '(1,1)'::tid)
2030 -> Tid Scan on t4 b1t4
2031 TID Cond: (ctid = '(1,1)'::tid)
2032 -> Tid Scan on t1 b1t1
2033 TID Cond: (ctid = '(1,1)'::tid)
2037 Join Filter: (b2t1.c1 = b2t2.c1)
2039 Join Filter: (b2t3.c1 = b2t1.c1)
2041 Join Filter: (b2t3.c1 = b2t4.c1)
2042 -> Tid Scan on t3 b2t3
2043 TID Cond: (ctid = '(1,1)'::tid)
2044 -> Tid Scan on t4 b2t4
2045 TID Cond: (ctid = '(1,1)'::tid)
2046 -> Tid Scan on t1 b2t1
2047 TID Cond: (ctid = '(1,1)'::tid)
2048 -> Seq Scan on t2 b2t2
2049 Filter: (ctid = '(1,1)'::tid)
2051 Join Filter: (bmt1.c1 = bmt4.c1)
2053 Join Filter: (bmt1.c1 = bmt3.c1)
2055 Join Filter: (bmt1.c1 = bmt2.c1)
2057 Join Filter: (c1.c1 = bmt1.c1)
2059 Join Filter: (c1.c1 = c2.c1)
2062 -> Tid Scan on t1 bmt1
2063 TID Cond: (ctid = '(1,1)'::tid)
2064 -> Seq Scan on t2 bmt2
2065 Filter: (ctid = '(1,1)'::tid)
2066 -> Tid Scan on t3 bmt3
2067 TID Cond: (ctid = '(1,1)'::tid)
2068 -> Tid Scan on t4 bmt4
2069 TID Cond: (ctid = '(1,1)'::tid)
2073 EXPLAIN (COSTS false)
2075 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)'
2078 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)'
2081 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)'
2083 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2085 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)'
2091 -----------------------------------------------------------------------------
2096 Join Filter: (b1t1.c1 = b1t4.c1)
2098 Join Filter: (b1t1.c1 = b1t3.c1)
2100 Join Filter: (b1t1.c1 = b1t2.c1)
2101 -> Tid Scan on t1 b1t1
2102 TID Cond: (ctid = '(1,1)'::tid)
2103 -> Seq Scan on t2 b1t2
2104 Filter: (ctid = '(1,1)'::tid)
2105 -> Tid Scan on t3 b1t3
2106 TID Cond: (ctid = '(1,1)'::tid)
2107 -> Tid Scan on t4 b1t4
2108 TID Cond: (ctid = '(1,1)'::tid)
2112 Join Filter: (b2t1.c1 = b2t4.c1)
2114 Join Filter: (b2t1.c1 = b2t3.c1)
2116 Join Filter: (b2t1.c1 = b2t2.c1)
2117 -> Tid Scan on t1 b2t1
2118 TID Cond: (ctid = '(1,1)'::tid)
2119 -> Seq Scan on t2 b2t2
2120 Filter: (ctid = '(1,1)'::tid)
2121 -> Tid Scan on t3 b2t3
2122 TID Cond: (ctid = '(1,1)'::tid)
2123 -> Tid Scan on t4 b2t4
2124 TID Cond: (ctid = '(1,1)'::tid)
2128 Join Filter: (b3t1.c1 = b3t4.c1)
2130 Join Filter: (b3t1.c1 = b3t3.c1)
2132 Join Filter: (b3t1.c1 = b3t2.c1)
2133 -> Tid Scan on t1 b3t1
2134 TID Cond: (ctid = '(1,1)'::tid)
2135 -> Seq Scan on t2 b3t2
2136 Filter: (ctid = '(1,1)'::tid)
2137 -> Tid Scan on t3 b3t3
2138 TID Cond: (ctid = '(1,1)'::tid)
2139 -> Tid Scan on t4 b3t4
2140 TID Cond: (ctid = '(1,1)'::tid)
2142 Join Filter: (bmt1.c1 = c3.c1)
2144 Join Filter: (bmt1.c1 = c2.c1)
2146 Join Filter: (bmt1.c1 = c1.c1)
2148 Join Filter: (bmt1.c1 = bmt4.c1)
2150 Join Filter: (bmt1.c1 = bmt3.c1)
2152 Join Filter: (bmt1.c1 = bmt2.c1)
2153 -> Tid Scan on t1 bmt1
2154 TID Cond: (ctid = '(1,1)'::tid)
2155 -> Seq Scan on t2 bmt2
2156 Filter: (ctid = '(1,1)'::tid)
2157 -> Tid Scan on t3 bmt3
2158 TID Cond: (ctid = '(1,1)'::tid)
2159 -> Tid Scan on t4 bmt4
2160 TID Cond: (ctid = '(1,1)'::tid)
2167 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2168 Leading(b1t2 b1t3 b1t4 b1t1)
2169 Leading(b2t3 b2t4 b2t1 b2t2)
2170 Leading(b3t4 b3t1 b3t2 b3t3)
2172 EXPLAIN (COSTS false)
2174 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)'
2177 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)'
2180 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)'
2182 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2184 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)'
2191 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2192 Leading(b1t2 b1t3 b1t4 b1t1)
2193 Leading(b2t3 b2t4 b2t1 b2t2)
2194 Leading(b3t4 b3t1 b3t2 b3t3)
2200 --------------------------------------------------------------------
2205 Join Filter: (b1t2.c1 = b1t1.c1)
2207 Join Filter: (b1t2.c1 = b1t4.c1)
2209 Join Filter: (b1t2.c1 = b1t3.c1)
2210 -> Seq Scan on t2 b1t2
2211 Filter: (ctid = '(1,1)'::tid)
2212 -> Tid Scan on t3 b1t3
2213 TID Cond: (ctid = '(1,1)'::tid)
2214 -> Tid Scan on t4 b1t4
2215 TID Cond: (ctid = '(1,1)'::tid)
2216 -> Tid Scan on t1 b1t1
2217 TID Cond: (ctid = '(1,1)'::tid)
2221 Join Filter: (b2t1.c1 = b2t2.c1)
2223 Join Filter: (b2t3.c1 = b2t1.c1)
2225 Join Filter: (b2t3.c1 = b2t4.c1)
2226 -> Tid Scan on t3 b2t3
2227 TID Cond: (ctid = '(1,1)'::tid)
2228 -> Tid Scan on t4 b2t4
2229 TID Cond: (ctid = '(1,1)'::tid)
2230 -> Tid Scan on t1 b2t1
2231 TID Cond: (ctid = '(1,1)'::tid)
2232 -> Seq Scan on t2 b2t2
2233 Filter: (ctid = '(1,1)'::tid)
2237 Join Filter: (b3t1.c1 = b3t3.c1)
2239 Join Filter: (b3t1.c1 = b3t2.c1)
2241 Join Filter: (b3t1.c1 = b3t4.c1)
2242 -> Tid Scan on t1 b3t1
2243 TID Cond: (ctid = '(1,1)'::tid)
2244 -> Tid Scan on t4 b3t4
2245 TID Cond: (ctid = '(1,1)'::tid)
2246 -> Seq Scan on t2 b3t2
2247 Filter: (ctid = '(1,1)'::tid)
2248 -> Tid Scan on t3 b3t3
2249 TID Cond: (ctid = '(1,1)'::tid)
2251 Join Filter: (bmt1.c1 = bmt4.c1)
2253 Join Filter: (bmt1.c1 = bmt3.c1)
2255 Join Filter: (bmt1.c1 = bmt2.c1)
2257 Join Filter: (c1.c1 = bmt1.c1)
2259 Join Filter: (c2.c1 = c1.c1)
2261 Join Filter: (c2.c1 = c3.c1)
2265 -> Tid Scan on t1 bmt1
2266 TID Cond: (ctid = '(1,1)'::tid)
2267 -> Seq Scan on t2 bmt2
2268 Filter: (ctid = '(1,1)'::tid)
2269 -> Tid Scan on t3 bmt3
2270 TID Cond: (ctid = '(1,1)'::tid)
2271 -> Tid Scan on t4 bmt4
2272 TID Cond: (ctid = '(1,1)'::tid)
2276 ---- No. L-2-2 the number of the tables per quiry block
2279 EXPLAIN (COSTS false)
2281 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2283 SELECT max(bmt1.c1), (
2284 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2286 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2288 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2292 -----------------------------------------------------------------
2296 InitPlan 1 (returns $0)
2298 -> Tid Scan on t1 b1t1
2299 TID Cond: (ctid = '(1,1)'::tid)
2300 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2301 InitPlan 4 (returns $3)
2303 InitPlan 3 (returns $2)
2305 -> Tid Scan on t1 b2t1
2306 TID Cond: (ctid = '(1,1)'::tid)
2307 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2308 InitPlan 6 (returns $5)
2310 InitPlan 5 (returns $4)
2312 -> Tid Scan on t1 b3t1
2313 TID Cond: (ctid = '(1,1)'::tid)
2314 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2316 -> Tid Scan on t1 bmt1
2317 TID Cond: (ctid = '(1,1)'::tid)
2318 Filter: ((c1 <> $5) AND (c1 = 1))
2325 EXPLAIN (COSTS false)
2327 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2329 SELECT max(bmt1.c1), (
2330 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2332 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2334 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2345 -----------------------------------------------------------------
2349 InitPlan 1 (returns $0)
2351 -> Tid Scan on t1 b1t1
2352 TID Cond: (ctid = '(1,1)'::tid)
2353 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2354 InitPlan 4 (returns $3)
2356 InitPlan 3 (returns $2)
2358 -> Tid Scan on t1 b2t1
2359 TID Cond: (ctid = '(1,1)'::tid)
2360 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2361 InitPlan 6 (returns $5)
2363 InitPlan 5 (returns $4)
2365 -> Tid Scan on t1 b3t1
2366 TID Cond: (ctid = '(1,1)'::tid)
2367 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2369 -> Tid Scan on t1 bmt1
2370 TID Cond: (ctid = '(1,1)'::tid)
2371 Filter: ((c1 <> $5) AND (c1 = 1))
2376 EXPLAIN (COSTS false)
2378 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)'
2380 SELECT max(bmt1.c1), (
2381 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)'
2383 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2386 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)'
2390 -------------------------------------------------------
2395 Join Filter: (b1t1.c1 = b1t2.c1)
2396 -> Tid Scan on t1 b1t1
2397 TID Cond: (ctid = '(1,1)'::tid)
2398 -> Seq Scan on t2 b1t2
2399 Filter: (ctid = '(1,1)'::tid)
2400 InitPlan 2 (returns $1)
2403 Join Filter: (b2t1.c1 = b2t2.c1)
2404 -> Tid Scan on t1 b2t1
2405 TID Cond: (ctid = '(1,1)'::tid)
2406 -> Seq Scan on t2 b2t2
2407 Filter: (ctid = '(1,1)'::tid)
2408 InitPlan 3 (returns $2)
2411 Join Filter: (b3t1.c1 = b3t2.c1)
2412 -> Tid Scan on t1 b3t1
2413 TID Cond: (ctid = '(1,1)'::tid)
2414 -> Seq Scan on t2 b3t2
2415 Filter: (ctid = '(1,1)'::tid)
2417 Join Filter: (bmt1.c1 = c1.c1)
2419 Join Filter: (bmt1.c1 = bmt2.c1)
2420 -> Tid Scan on t1 bmt1
2421 TID Cond: (ctid = '(1,1)'::tid)
2423 -> Seq Scan on t2 bmt2
2424 Filter: (ctid = '(1,1)'::tid)
2429 Leading(c1 bmt2 bmt1)
2434 EXPLAIN (COSTS false)
2436 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)'
2438 SELECT max(bmt1.c1), (
2439 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)'
2441 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2444 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)'
2449 Leading(c1 bmt2 bmt1)
2458 -------------------------------------------------------
2463 Join Filter: (b1t1.c1 = b1t2.c1)
2464 -> Tid Scan on t1 b1t1
2465 TID Cond: (ctid = '(1,1)'::tid)
2466 -> Seq Scan on t2 b1t2
2467 Filter: (ctid = '(1,1)'::tid)
2468 InitPlan 2 (returns $1)
2471 Join Filter: (b2t1.c1 = b2t2.c1)
2472 -> Tid Scan on t1 b2t1
2473 TID Cond: (ctid = '(1,1)'::tid)
2474 -> Seq Scan on t2 b2t2
2475 Filter: (ctid = '(1,1)'::tid)
2476 InitPlan 3 (returns $2)
2479 Join Filter: (b3t1.c1 = b3t2.c1)
2480 -> Tid Scan on t1 b3t1
2481 TID Cond: (ctid = '(1,1)'::tid)
2482 -> Seq Scan on t2 b3t2
2483 Filter: (ctid = '(1,1)'::tid)
2485 Join Filter: (bmt2.c1 = bmt1.c1)
2487 Join Filter: (bmt2.c1 = c1.c1)
2488 -> Seq Scan on t2 bmt2
2489 Filter: (ctid = '(1,1)'::tid)
2491 -> Tid Scan on t1 bmt1
2492 TID Cond: (ctid = '(1,1)'::tid)
2497 EXPLAIN (COSTS false)
2499 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)'
2501 SELECT max(bmt1.c1), (
2502 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)'
2504 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
2506 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)'
2510 -------------------------------------------------------------------
2515 Join Filter: (b1t1.c1 = b1t4.c1)
2517 Join Filter: (b1t1.c1 = b1t3.c1)
2519 Join Filter: (b1t1.c1 = b1t2.c1)
2520 -> Tid Scan on t1 b1t1
2521 TID Cond: (ctid = '(1,1)'::tid)
2522 -> Seq Scan on t2 b1t2
2523 Filter: (ctid = '(1,1)'::tid)
2524 -> Tid Scan on t3 b1t3
2525 TID Cond: (ctid = '(1,1)'::tid)
2526 -> Tid Scan on t4 b1t4
2527 TID Cond: (ctid = '(1,1)'::tid)
2528 InitPlan 2 (returns $1)
2531 Join Filter: (b2t1.c1 = b2t4.c1)
2533 Join Filter: (b2t1.c1 = b2t3.c1)
2535 Join Filter: (b2t1.c1 = b2t2.c1)
2536 -> Tid Scan on t1 b2t1
2537 TID Cond: (ctid = '(1,1)'::tid)
2538 -> Seq Scan on t2 b2t2
2539 Filter: (ctid = '(1,1)'::tid)
2540 -> Tid Scan on t3 b2t3
2541 TID Cond: (ctid = '(1,1)'::tid)
2542 -> Tid Scan on t4 b2t4
2543 TID Cond: (ctid = '(1,1)'::tid)
2544 InitPlan 3 (returns $2)
2547 Join Filter: (b3t1.c1 = b3t4.c1)
2549 Join Filter: (b3t1.c1 = b3t3.c1)
2551 Join Filter: (b3t1.c1 = b3t2.c1)
2552 -> Tid Scan on t1 b3t1
2553 TID Cond: (ctid = '(1,1)'::tid)
2554 -> Seq Scan on t2 b3t2
2555 Filter: (ctid = '(1,1)'::tid)
2556 -> Tid Scan on t3 b3t3
2557 TID Cond: (ctid = '(1,1)'::tid)
2558 -> Tid Scan on t4 b3t4
2559 TID Cond: (ctid = '(1,1)'::tid)
2561 Join Filter: (bmt1.c1 = c1.c1)
2563 Join Filter: (bmt1.c1 = bmt4.c1)
2565 Join Filter: (bmt1.c1 = bmt3.c1)
2567 Join Filter: (bmt1.c1 = bmt2.c1)
2568 -> Tid Scan on t1 bmt1
2569 TID Cond: (ctid = '(1,1)'::tid)
2571 -> Seq Scan on t2 bmt2
2572 Filter: (ctid = '(1,1)'::tid)
2573 -> Tid Scan on t3 bmt3
2574 TID Cond: (ctid = '(1,1)'::tid)
2575 -> Tid Scan on t4 bmt4
2576 TID Cond: (ctid = '(1,1)'::tid)
2581 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2582 Leading(b1t4 b1t3 b1t2 b1t1)
2583 Leading(b2t4 b2t3 b2t2 b2t1)
2584 Leading(b3t4 b3t3 b3t2 b3t1)
2586 EXPLAIN (COSTS false)
2588 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)'
2590 SELECT max(bmt1.c1), (
2591 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)'
2593 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
2595 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)'
2600 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2601 Leading(b1t4 b1t3 b1t2 b1t1)
2602 Leading(b2t4 b2t3 b2t2 b2t1)
2603 Leading(b3t4 b3t3 b3t2 b3t1)
2609 -------------------------------------------------------------------
2614 Join Filter: (b1t2.c1 = b1t1.c1)
2616 Join Filter: (b1t3.c1 = b1t2.c1)
2618 Join Filter: (b1t3.c1 = b1t4.c1)
2619 -> Tid Scan on t3 b1t3
2620 TID Cond: (ctid = '(1,1)'::tid)
2621 -> Tid Scan on t4 b1t4
2622 TID Cond: (ctid = '(1,1)'::tid)
2623 -> Seq Scan on t2 b1t2
2624 Filter: (ctid = '(1,1)'::tid)
2625 -> Tid Scan on t1 b1t1
2626 TID Cond: (ctid = '(1,1)'::tid)
2627 InitPlan 2 (returns $1)
2630 Join Filter: (b2t2.c1 = b2t1.c1)
2632 Join Filter: (b2t3.c1 = b2t2.c1)
2634 Join Filter: (b2t3.c1 = b2t4.c1)
2635 -> Tid Scan on t3 b2t3
2636 TID Cond: (ctid = '(1,1)'::tid)
2637 -> Tid Scan on t4 b2t4
2638 TID Cond: (ctid = '(1,1)'::tid)
2639 -> Seq Scan on t2 b2t2
2640 Filter: (ctid = '(1,1)'::tid)
2641 -> Tid Scan on t1 b2t1
2642 TID Cond: (ctid = '(1,1)'::tid)
2643 InitPlan 3 (returns $2)
2646 Join Filter: (b3t2.c1 = b3t1.c1)
2648 Join Filter: (b3t3.c1 = b3t2.c1)
2650 Join Filter: (b3t3.c1 = b3t4.c1)
2651 -> Tid Scan on t3 b3t3
2652 TID Cond: (ctid = '(1,1)'::tid)
2653 -> Tid Scan on t4 b3t4
2654 TID Cond: (ctid = '(1,1)'::tid)
2655 -> Seq Scan on t2 b3t2
2656 Filter: (ctid = '(1,1)'::tid)
2657 -> Tid Scan on t1 b3t1
2658 TID Cond: (ctid = '(1,1)'::tid)
2660 Join Filter: (bmt2.c1 = bmt1.c1)
2662 Join Filter: (bmt3.c1 = bmt2.c1)
2664 Join Filter: (bmt4.c1 = bmt3.c1)
2666 Join Filter: (bmt4.c1 = c1.c1)
2667 -> Tid Scan on t4 bmt4
2668 TID Cond: (ctid = '(1,1)'::tid)
2670 -> Tid Scan on t3 bmt3
2671 TID Cond: (ctid = '(1,1)'::tid)
2672 -> Seq Scan on t2 bmt2
2673 Filter: (ctid = '(1,1)'::tid)
2674 -> Tid Scan on t1 bmt1
2675 TID Cond: (ctid = '(1,1)'::tid)
2680 EXPLAIN (COSTS false)
2682 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)'
2684 SELECT max(bmt1.c1), (
2685 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2687 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
2689 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2693 -------------------------------------------------------------------
2698 Join Filter: (b1t1.c1 = b1t4.c1)
2700 Join Filter: (b1t1.c1 = b1t3.c1)
2702 Join Filter: (b1t1.c1 = b1t2.c1)
2703 -> Tid Scan on t1 b1t1
2704 TID Cond: (ctid = '(1,1)'::tid)
2705 -> Seq Scan on t2 b1t2
2706 Filter: (ctid = '(1,1)'::tid)
2707 -> Tid Scan on t3 b1t3
2708 TID Cond: (ctid = '(1,1)'::tid)
2709 -> Tid Scan on t4 b1t4
2710 TID Cond: (ctid = '(1,1)'::tid)
2711 InitPlan 3 (returns $2)
2713 InitPlan 2 (returns $1)
2715 -> Tid Scan on t1 b2t1
2716 TID Cond: (ctid = '(1,1)'::tid)
2717 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2718 InitPlan 4 (returns $3)
2720 -> Tid Scan on t1 b3t1
2721 TID Cond: (ctid = '(1,1)'::tid)
2723 Join Filter: (bmt1.c1 = c1.c1)
2725 Join Filter: (bmt1.c1 = bmt4.c1)
2727 Join Filter: (bmt1.c1 = bmt3.c1)
2729 Join Filter: (bmt1.c1 = bmt2.c1)
2730 -> Tid Scan on t1 bmt1
2731 TID Cond: (ctid = '(1,1)'::tid)
2733 -> Seq Scan on t2 bmt2
2734 Filter: (ctid = '(1,1)'::tid)
2735 -> Tid Scan on t3 bmt3
2736 TID Cond: (ctid = '(1,1)'::tid)
2737 -> Tid Scan on t4 bmt4
2738 TID Cond: (ctid = '(1,1)'::tid)
2743 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2744 Leading(b1t4 b1t3 b1t2 b1t1)
2746 EXPLAIN (COSTS false)
2748 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)'
2750 SELECT max(bmt1.c1), (
2751 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2753 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
2755 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2760 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2761 Leading(b1t4 b1t3 b1t2 b1t1)
2767 -------------------------------------------------------------------
2772 Join Filter: (b1t2.c1 = b1t1.c1)
2774 Join Filter: (b1t3.c1 = b1t2.c1)
2776 Join Filter: (b1t3.c1 = b1t4.c1)
2777 -> Tid Scan on t3 b1t3
2778 TID Cond: (ctid = '(1,1)'::tid)
2779 -> Tid Scan on t4 b1t4
2780 TID Cond: (ctid = '(1,1)'::tid)
2781 -> Seq Scan on t2 b1t2
2782 Filter: (ctid = '(1,1)'::tid)
2783 -> Tid Scan on t1 b1t1
2784 TID Cond: (ctid = '(1,1)'::tid)
2785 InitPlan 3 (returns $2)
2787 InitPlan 2 (returns $1)
2789 -> Tid Scan on t1 b2t1
2790 TID Cond: (ctid = '(1,1)'::tid)
2791 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2792 InitPlan 4 (returns $3)
2794 -> Tid Scan on t1 b3t1
2795 TID Cond: (ctid = '(1,1)'::tid)
2797 Join Filter: (bmt2.c1 = bmt1.c1)
2799 Join Filter: (bmt3.c1 = bmt2.c1)
2801 Join Filter: (bmt4.c1 = bmt3.c1)
2803 Join Filter: (bmt4.c1 = c1.c1)
2804 -> Tid Scan on t4 bmt4
2805 TID Cond: (ctid = '(1,1)'::tid)
2807 -> Tid Scan on t3 bmt3
2808 TID Cond: (ctid = '(1,1)'::tid)
2809 -> Seq Scan on t2 bmt2
2810 Filter: (ctid = '(1,1)'::tid)
2811 -> Tid Scan on t1 bmt1
2812 TID Cond: (ctid = '(1,1)'::tid)
2817 ---- No. L-2-3 RULE or VIEW
2820 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2822 -----------------------------------------------------------------
2825 Join Filter: (t1.c1 = t4.c1)
2827 Join Filter: (t1.c1 = t3.c1)
2829 Join Filter: (t1.c1 = t2.c1)
2832 TID Cond: (ctid = '(1,1)'::tid)
2835 TID Cond: (ctid = '(1,1)'::tid)
2837 Filter: (ctid = '(1,1)'::tid)
2839 TID Cond: (ctid = '(1,1)'::tid)
2841 TID Cond: (ctid = '(1,1)'::tid)
2844 /*+ Leading(t4 t3 t2 t1 r1) */
2845 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2848 Leading(t4 t3 t2 t1 r1)
2854 -----------------------------------------------------------------
2858 Join Filter: (t2.c1 = t1.c1)
2860 Join Filter: (t3.c1 = t2.c1)
2862 Join Filter: (t3.c1 = t4.c1)
2864 TID Cond: (ctid = '(1,1)'::tid)
2866 TID Cond: (ctid = '(1,1)'::tid)
2868 Filter: (ctid = '(1,1)'::tid)
2870 TID Cond: (ctid = '(1,1)'::tid)
2872 TID Cond: (ctid = '(1,1)'::tid)
2876 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2878 -----------------------------------------------------------------
2881 Join Filter: (b1t1.c1 = b1t4.c1)
2883 Join Filter: (b1t1.c1 = b1t3.c1)
2885 Join Filter: (b1t1.c1 = b1t2.c1)
2888 TID Cond: (ctid = '(1,1)'::tid)
2890 -> Tid Scan on t1 b1t1
2891 TID Cond: (ctid = '(1,1)'::tid)
2892 -> Seq Scan on t2 b1t2
2893 Filter: (ctid = '(1,1)'::tid)
2894 -> Tid Scan on t3 b1t3
2895 TID Cond: (ctid = '(1,1)'::tid)
2896 -> Tid Scan on t4 b1t4
2897 TID Cond: (ctid = '(1,1)'::tid)
2900 /*+ Leading(b1t1 b1t2 b1t3 b1t4 r1_) */
2901 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2904 Leading(b1t1 b1t2 b1t3 b1t4 r1_)
2910 -----------------------------------------------------------------
2914 Join Filter: (b1t1.c1 = b1t4.c1)
2916 Join Filter: (b1t1.c1 = b1t3.c1)
2918 Join Filter: (b1t1.c1 = b1t2.c1)
2919 -> Tid Scan on t1 b1t1
2920 TID Cond: (ctid = '(1,1)'::tid)
2921 -> Seq Scan on t2 b1t2
2922 Filter: (ctid = '(1,1)'::tid)
2923 -> Tid Scan on t3 b1t3
2924 TID Cond: (ctid = '(1,1)'::tid)
2925 -> Tid Scan on t4 b1t4
2926 TID Cond: (ctid = '(1,1)'::tid)
2928 TID Cond: (ctid = '(1,1)'::tid)
2933 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2935 -----------------------------------------------------------------
2938 Join Filter: (t1.c1 = t4.c1)
2940 Join Filter: (t1.c1 = t3.c1)
2942 Join Filter: (t1.c1 = t2.c1)
2945 TID Cond: (ctid = '(1,1)'::tid)
2948 TID Cond: (ctid = '(1,1)'::tid)
2950 Filter: (ctid = '(1,1)'::tid)
2952 TID Cond: (ctid = '(1,1)'::tid)
2954 TID Cond: (ctid = '(1,1)'::tid)
2958 Join Filter: (t1.c1 = t4.c1)
2960 Join Filter: (t1.c1 = t3.c1)
2962 Join Filter: (t1.c1 = t2.c1)
2965 TID Cond: (ctid = '(1,1)'::tid)
2968 TID Cond: (ctid = '(1,1)'::tid)
2970 Filter: (ctid = '(1,1)'::tid)
2972 TID Cond: (ctid = '(1,1)'::tid)
2974 TID Cond: (ctid = '(1,1)'::tid)
2977 /*+ Leading(t4 t3 t2 t1 r2) */
2978 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2981 Leading(t4 t3 t2 t1 r2)
2988 Leading(t4 t3 t2 t1 r2)
2994 -----------------------------------------------------------------
2998 Join Filter: (t2.c1 = t1.c1)
3000 Join Filter: (t3.c1 = t2.c1)
3002 Join Filter: (t3.c1 = t4.c1)
3004 TID Cond: (ctid = '(1,1)'::tid)
3006 TID Cond: (ctid = '(1,1)'::tid)
3008 Filter: (ctid = '(1,1)'::tid)
3010 TID Cond: (ctid = '(1,1)'::tid)
3012 TID Cond: (ctid = '(1,1)'::tid)
3018 Join Filter: (t2.c1 = t1.c1)
3020 Join Filter: (t3.c1 = t2.c1)
3022 Join Filter: (t3.c1 = t4.c1)
3024 TID Cond: (ctid = '(1,1)'::tid)
3026 TID Cond: (ctid = '(1,1)'::tid)
3028 Filter: (ctid = '(1,1)'::tid)
3030 TID Cond: (ctid = '(1,1)'::tid)
3032 TID Cond: (ctid = '(1,1)'::tid)
3036 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3038 -----------------------------------------------------------------
3041 Join Filter: (b1t1.c1 = b1t4.c1)
3043 Join Filter: (b1t1.c1 = b1t3.c1)
3045 Join Filter: (b1t1.c1 = b1t2.c1)
3048 TID Cond: (ctid = '(1,1)'::tid)
3050 -> Tid Scan on t1 b1t1
3051 TID Cond: (ctid = '(1,1)'::tid)
3052 -> Seq Scan on t2 b1t2
3053 Filter: (ctid = '(1,1)'::tid)
3054 -> Tid Scan on t3 b1t3
3055 TID Cond: (ctid = '(1,1)'::tid)
3056 -> Tid Scan on t4 b1t4
3057 TID Cond: (ctid = '(1,1)'::tid)
3061 Join Filter: (b2t1.c1 = b2t4.c1)
3063 Join Filter: (b2t1.c1 = b2t3.c1)
3065 Join Filter: (b2t1.c1 = b2t2.c1)
3068 TID Cond: (ctid = '(1,1)'::tid)
3070 -> Tid Scan on t1 b2t1
3071 TID Cond: (ctid = '(1,1)'::tid)
3072 -> Seq Scan on t2 b2t2
3073 Filter: (ctid = '(1,1)'::tid)
3074 -> Tid Scan on t3 b2t3
3075 TID Cond: (ctid = '(1,1)'::tid)
3076 -> Tid Scan on t4 b2t4
3077 TID Cond: (ctid = '(1,1)'::tid)
3081 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3082 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3084 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3087 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3089 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3095 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3097 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3102 -----------------------------------------------------------------
3106 Join Filter: (b1t1.c1 = b1t4.c1)
3108 Join Filter: (b1t1.c1 = b1t3.c1)
3110 Join Filter: (b1t1.c1 = b1t2.c1)
3111 -> Tid Scan on t1 b1t1
3112 TID Cond: (ctid = '(1,1)'::tid)
3113 -> Seq Scan on t2 b1t2
3114 Filter: (ctid = '(1,1)'::tid)
3115 -> Tid Scan on t3 b1t3
3116 TID Cond: (ctid = '(1,1)'::tid)
3117 -> Tid Scan on t4 b1t4
3118 TID Cond: (ctid = '(1,1)'::tid)
3120 TID Cond: (ctid = '(1,1)'::tid)
3126 Join Filter: (b2t1.c1 = b2t4.c1)
3128 Join Filter: (b2t1.c1 = b2t3.c1)
3130 Join Filter: (b2t1.c1 = b2t2.c1)
3131 -> Tid Scan on t1 b2t1
3132 TID Cond: (ctid = '(1,1)'::tid)
3133 -> Seq Scan on t2 b2t2
3134 Filter: (ctid = '(1,1)'::tid)
3135 -> Tid Scan on t3 b2t3
3136 TID Cond: (ctid = '(1,1)'::tid)
3137 -> Tid Scan on t4 b2t4
3138 TID Cond: (ctid = '(1,1)'::tid)
3140 TID Cond: (ctid = '(1,1)'::tid)
3145 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3147 -----------------------------------------------------------------
3150 Join Filter: (t1.c1 = t4.c1)
3152 Join Filter: (t1.c1 = t3.c1)
3154 Join Filter: (t1.c1 = t2.c1)
3157 TID Cond: (ctid = '(1,1)'::tid)
3160 TID Cond: (ctid = '(1,1)'::tid)
3162 Filter: (ctid = '(1,1)'::tid)
3164 TID Cond: (ctid = '(1,1)'::tid)
3166 TID Cond: (ctid = '(1,1)'::tid)
3170 Join Filter: (t1.c1 = t4.c1)
3172 Join Filter: (t1.c1 = t3.c1)
3174 Join Filter: (t1.c1 = t2.c1)
3177 TID Cond: (ctid = '(1,1)'::tid)
3180 TID Cond: (ctid = '(1,1)'::tid)
3182 Filter: (ctid = '(1,1)'::tid)
3184 TID Cond: (ctid = '(1,1)'::tid)
3186 TID Cond: (ctid = '(1,1)'::tid)
3190 Join Filter: (t1.c1 = t4.c1)
3192 Join Filter: (t1.c1 = t3.c1)
3194 Join Filter: (t1.c1 = t2.c1)
3197 TID Cond: (ctid = '(1,1)'::tid)
3200 TID Cond: (ctid = '(1,1)'::tid)
3202 Filter: (ctid = '(1,1)'::tid)
3204 TID Cond: (ctid = '(1,1)'::tid)
3206 TID Cond: (ctid = '(1,1)'::tid)
3209 /*+ Leading(t4 t3 t2 t1 r3) */
3210 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3213 Leading(t4 t3 t2 t1 r3)
3220 Leading(t4 t3 t2 t1 r3)
3227 Leading(t4 t3 t2 t1 r3)
3233 -----------------------------------------------------------------
3237 Join Filter: (t2.c1 = t1.c1)
3239 Join Filter: (t3.c1 = t2.c1)
3241 Join Filter: (t3.c1 = t4.c1)
3243 TID Cond: (ctid = '(1,1)'::tid)
3245 TID Cond: (ctid = '(1,1)'::tid)
3247 Filter: (ctid = '(1,1)'::tid)
3249 TID Cond: (ctid = '(1,1)'::tid)
3251 TID Cond: (ctid = '(1,1)'::tid)
3257 Join Filter: (t2.c1 = t1.c1)
3259 Join Filter: (t3.c1 = t2.c1)
3261 Join Filter: (t3.c1 = t4.c1)
3263 TID Cond: (ctid = '(1,1)'::tid)
3265 TID Cond: (ctid = '(1,1)'::tid)
3267 Filter: (ctid = '(1,1)'::tid)
3269 TID Cond: (ctid = '(1,1)'::tid)
3271 TID Cond: (ctid = '(1,1)'::tid)
3277 Join Filter: (t2.c1 = t1.c1)
3279 Join Filter: (t3.c1 = t2.c1)
3281 Join Filter: (t3.c1 = t4.c1)
3283 TID Cond: (ctid = '(1,1)'::tid)
3285 TID Cond: (ctid = '(1,1)'::tid)
3287 Filter: (ctid = '(1,1)'::tid)
3289 TID Cond: (ctid = '(1,1)'::tid)
3291 TID Cond: (ctid = '(1,1)'::tid)
3295 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3297 -----------------------------------------------------------------
3300 Join Filter: (b1t1.c1 = b1t4.c1)
3302 Join Filter: (b1t1.c1 = b1t3.c1)
3304 Join Filter: (b1t1.c1 = b1t2.c1)
3307 TID Cond: (ctid = '(1,1)'::tid)
3309 -> Tid Scan on t1 b1t1
3310 TID Cond: (ctid = '(1,1)'::tid)
3311 -> Seq Scan on t2 b1t2
3312 Filter: (ctid = '(1,1)'::tid)
3313 -> Tid Scan on t3 b1t3
3314 TID Cond: (ctid = '(1,1)'::tid)
3315 -> Tid Scan on t4 b1t4
3316 TID Cond: (ctid = '(1,1)'::tid)
3320 Join Filter: (b2t1.c1 = b2t4.c1)
3322 Join Filter: (b2t1.c1 = b2t3.c1)
3324 Join Filter: (b2t1.c1 = b2t2.c1)
3327 TID Cond: (ctid = '(1,1)'::tid)
3329 -> Tid Scan on t1 b2t1
3330 TID Cond: (ctid = '(1,1)'::tid)
3331 -> Seq Scan on t2 b2t2
3332 Filter: (ctid = '(1,1)'::tid)
3333 -> Tid Scan on t3 b2t3
3334 TID Cond: (ctid = '(1,1)'::tid)
3335 -> Tid Scan on t4 b2t4
3336 TID Cond: (ctid = '(1,1)'::tid)
3340 Join Filter: (b3t1.c1 = b3t4.c1)
3342 Join Filter: (b3t1.c1 = b3t3.c1)
3344 Join Filter: (b3t1.c1 = b3t2.c1)
3347 TID Cond: (ctid = '(1,1)'::tid)
3349 -> Tid Scan on t1 b3t1
3350 TID Cond: (ctid = '(1,1)'::tid)
3351 -> Seq Scan on t2 b3t2
3352 Filter: (ctid = '(1,1)'::tid)
3353 -> Tid Scan on t3 b3t3
3354 TID Cond: (ctid = '(1,1)'::tid)
3355 -> Tid Scan on t4 b3t4
3356 TID Cond: (ctid = '(1,1)'::tid)
3360 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3361 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3362 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3364 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3367 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3369 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3370 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3376 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3378 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3379 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3385 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3387 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3388 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3393 -----------------------------------------------------------------
3397 Join Filter: (b1t1.c1 = b1t4.c1)
3399 Join Filter: (b1t1.c1 = b1t3.c1)
3401 Join Filter: (b1t1.c1 = b1t2.c1)
3402 -> Tid Scan on t1 b1t1
3403 TID Cond: (ctid = '(1,1)'::tid)
3404 -> Seq Scan on t2 b1t2
3405 Filter: (ctid = '(1,1)'::tid)
3406 -> Tid Scan on t3 b1t3
3407 TID Cond: (ctid = '(1,1)'::tid)
3408 -> Tid Scan on t4 b1t4
3409 TID Cond: (ctid = '(1,1)'::tid)
3411 TID Cond: (ctid = '(1,1)'::tid)
3417 Join Filter: (b2t1.c1 = b2t4.c1)
3419 Join Filter: (b2t1.c1 = b2t3.c1)
3421 Join Filter: (b2t1.c1 = b2t2.c1)
3422 -> Tid Scan on t1 b2t1
3423 TID Cond: (ctid = '(1,1)'::tid)
3424 -> Seq Scan on t2 b2t2
3425 Filter: (ctid = '(1,1)'::tid)
3426 -> Tid Scan on t3 b2t3
3427 TID Cond: (ctid = '(1,1)'::tid)
3428 -> Tid Scan on t4 b2t4
3429 TID Cond: (ctid = '(1,1)'::tid)
3431 TID Cond: (ctid = '(1,1)'::tid)
3437 Join Filter: (b3t1.c1 = b3t4.c1)
3439 Join Filter: (b3t1.c1 = b3t3.c1)
3441 Join Filter: (b3t1.c1 = b3t2.c1)
3442 -> Tid Scan on t1 b3t1
3443 TID Cond: (ctid = '(1,1)'::tid)
3444 -> Seq Scan on t2 b3t2
3445 Filter: (ctid = '(1,1)'::tid)
3446 -> Tid Scan on t3 b3t3
3447 TID Cond: (ctid = '(1,1)'::tid)
3448 -> Tid Scan on t4 b3t4
3449 TID Cond: (ctid = '(1,1)'::tid)
3451 TID Cond: (ctid = '(1,1)'::tid)
3456 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3458 ----------------------------------
3460 Hash Cond: (v1t1.c1 = v1t1.c1)
3461 -> Seq Scan on t1 v1t1
3463 -> Seq Scan on t1 v1t1
3466 /*+Leading(v1t1 v1t1)*/
3467 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3468 INFO: hint syntax error at or near "Leading(v1t1 v1t1)"
3469 DETAIL: Relation name "v1t1" is ambiguous.
3478 ----------------------------------
3480 Hash Cond: (v1t1.c1 = v1t1.c1)
3481 -> Seq Scan on t1 v1t1
3483 -> Seq Scan on t1 v1t1
3487 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3489 -----------------------------------
3491 Hash Cond: (v1t1.c1 = v1t1_.c1)
3492 -> Seq Scan on t1 v1t1
3494 -> Seq Scan on t1 v1t1_
3497 /*+Leading(v1t1 v1t1_)*/
3498 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3507 -----------------------------------
3509 Hash Cond: (v1t1.c1 = v1t1_.c1)
3510 -> Seq Scan on t1 v1t1
3512 -> Seq Scan on t1 v1t1_
3516 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3518 ----------------------------------
3520 Hash Cond: (r4t1.c1 = r4t1.c1)
3521 -> Seq Scan on t1 r4t1
3523 -> Seq Scan on t1 r4t1
3526 /*+Leading(r4t1 r4t1)*/
3527 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3528 INFO: hint syntax error at or near "Leading(r4t1 r4t1)"
3529 DETAIL: Relation name "r4t1" is ambiguous.
3538 ----------------------------------
3540 Hash Cond: (r4t1.c1 = r4t1.c1)
3541 -> Seq Scan on t1 r4t1
3543 -> Seq Scan on t1 r4t1
3547 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3549 ----------------------------------
3551 Hash Cond: (r4t1.c1 = r5t1.c1)
3552 -> Seq Scan on t1 r4t1
3554 -> Seq Scan on t1 r5t1
3557 /*+Leading(r4t1 r5t1)*/
3558 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3567 ----------------------------------
3569 Hash Cond: (r4t1.c1 = r5t1.c1)
3570 -> Seq Scan on t1 r4t1
3572 -> Seq Scan on t1 r5t1
3576 ---- No. L-2-4 VALUES clause
3579 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;
3581 -------------------------------------------------
3584 Hash Cond: (t2.c1 = "*VALUES*".column1)
3587 -> Values Scan on "*VALUES*"
3588 -> Index Scan using t1_i1 on t1
3589 Index Cond: (c1 = t2.c1)
3592 /*+ Leading(t3 t1 t2) */
3593 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;
3602 -------------------------------------------------
3605 Hash Cond: (t2.c1 = "*VALUES*".column1)
3608 -> Values Scan on "*VALUES*"
3609 -> Index Scan using t1_i1 on t1
3610 Index Cond: (c1 = t2.c1)
3613 /*+ Leading(*VALUES* t1 t2) */
3614 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;
3617 Leading(*VALUES* t1 t2)
3623 -----------------------------------------------------
3626 -> Values Scan on "*VALUES*"
3627 -> Index Scan using t1_i1 on t1
3628 Index Cond: (c1 = "*VALUES*".column1)
3629 -> Index Scan using t2_i1 on t2
3630 Index Cond: (c1 = t1.c1)
3634 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3636 -------------------------------------------------------
3638 Join Filter: (t1.c1 = "*VALUES*".column1)
3641 Hash Cond: (t2.c1 = "*VALUES*".column1)
3644 -> Values Scan on "*VALUES*"
3645 -> Index Scan using t1_i1 on t1
3646 Index Cond: (c1 = t2.c1)
3647 -> Values Scan on "*VALUES*"
3650 /*+ Leading(t4 t3 t2 t1) */
3651 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3655 Leading(t4 t3 t2 t1)
3660 -------------------------------------------------------
3662 Join Filter: (t1.c1 = "*VALUES*".column1)
3665 Hash Cond: (t2.c1 = "*VALUES*".column1)
3668 -> Values Scan on "*VALUES*"
3669 -> Index Scan using t1_i1 on t1
3670 Index Cond: (c1 = t2.c1)
3671 -> Values Scan on "*VALUES*"
3674 /*+ Leading(*VALUES* t3 t2 t1) */
3675 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3676 INFO: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) "
3677 DETAIL: Relation name "*VALUES*" is ambiguous.
3683 Leading(*VALUES* t3 t2 t1)
3686 -------------------------------------------------------
3688 Join Filter: (t1.c1 = "*VALUES*".column1)
3691 Hash Cond: (t2.c1 = "*VALUES*".column1)
3694 -> Values Scan on "*VALUES*"
3695 -> Index Scan using t1_i1 on t1
3696 Index Cond: (c1 = t2.c1)
3697 -> Values Scan on "*VALUES*"
3701 ---- No. L-3-1 leading the order of table joins
3703 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3705 ------------------------------------------
3707 Merge Cond: (t1.c1 = t2.c1)
3709 Merge Cond: (t1.c1 = t3.c1)
3710 -> Index Scan using t1_i1 on t1
3711 -> Index Scan using t3_i1 on t3
3718 /*+Leading(t3 t1 t2)*/
3719 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3728 ------------------------------------------
3730 Merge Cond: (t1.c1 = t2.c1)
3732 Merge Cond: (t1.c1 = t3.c1)
3733 -> Index Scan using t1_i1 on t1
3734 -> Index Scan using t3_i1 on t3
3741 /*+Leading(t1 t2 t3)*/
3742 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3751 ------------------------------------------------
3753 Hash Cond: (t3.c1 = t1.c1)
3757 Merge Cond: (t1.c1 = t2.c1)
3758 -> Index Scan using t1_i1 on t1
3765 ---- No. L-3-2 GUC parameter to disable hints
3767 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3769 ------------------------------------------
3771 Merge Cond: (t1.c1 = t2.c1)
3773 Merge Cond: (t1.c1 = t3.c1)
3774 -> Index Scan using t1_i1 on t1
3775 -> Index Scan using t3_i1 on t3
3782 Set geqo_threshold = 3;
3784 /*+Leading(t1 t2 t3)*/
3785 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3794 ------------------------------------------
3796 Merge Cond: (t1.c1 = t2.c1)
3798 Merge Cond: (t1.c1 = t3.c1)
3799 -> Index Scan using t1_i1 on t1
3800 -> Index Scan using t3_i1 on t3
3806 Reset geqo_threshold;
3808 Set geqo_threshold = 4;
3810 /*+Leading(t1 t2 t3)*/
3811 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3820 ------------------------------------------------
3822 Hash Cond: (t3.c1 = t1.c1)
3826 Merge Cond: (t1.c1 = t2.c1)
3827 -> Index Scan using t1_i1 on t1
3833 Reset geqo_threshold;
3835 Set from_collapse_limit = 2;
3836 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3838 -----------------------------------------------------
3840 Hash Cond: (t1.c1 = v2t1.c1)
3844 Merge Cond: (v2t1.c1 = v2t2.c1)
3845 -> Index Scan using t1_i1 on t1 v2t1
3848 -> Seq Scan on t2 v2t2
3851 /*+Leading(t1 v2t1 v2t2)*/
3852 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3855 Leading(t1 v2t1 v2t2)
3861 -----------------------------------------------------
3863 Hash Cond: (t1.c1 = v2t1.c1)
3867 Merge Cond: (v2t1.c1 = v2t2.c1)
3868 -> Index Scan using t1_i1 on t1 v2t1
3871 -> Seq Scan on t2 v2t2
3874 Reset from_collapse_limit;
3876 Set from_collapse_limit = 3;
3877 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3879 -----------------------------------------------
3881 Merge Cond: (v2t1.c1 = v2t2.c1)
3883 Merge Cond: (t1.c1 = v2t1.c1)
3884 -> Index Scan using t1_i1 on t1
3885 -> Index Scan using t1_i1 on t1 v2t1
3888 -> Seq Scan on t2 v2t2
3891 /*+Leading(v2t1 v2t2 t1)*/
3892 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3895 Leading(v2t1 v2t2 t1)
3901 -----------------------------------------------------
3903 Hash Cond: (t1.c1 = v2t1.c1)
3907 Merge Cond: (v2t1.c1 = v2t2.c1)
3908 -> Index Scan using t1_i1 on t1 v2t1
3911 -> Seq Scan on t2 v2t2
3914 Reset from_collapse_limit;
3916 Set join_collapse_limit = 2;
3917 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3918 JOIN s1.t2 ON (t3.c1 = t2.c1)
3919 JOIN s1.t1 ON (t1.c1 = t3.c1);
3921 ------------------------------------------
3923 Hash Cond: (t1.c1 = t3.c1)
3927 Hash Cond: (t3.c1 = t2.c1)
3933 /*+Leading(t1 t2 t3)*/
3934 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3935 JOIN s1.t2 ON (t3.c1 = t2.c1)
3936 JOIN s1.t1 ON (t1.c1 = t3.c1);
3945 ------------------------------------------
3947 Hash Cond: (t1.c1 = t3.c1)
3951 Hash Cond: (t3.c1 = t2.c1)
3957 Reset join_collapse_limit;
3959 Set join_collapse_limit = 3;
3960 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3961 JOIN s1.t2 ON (t3.c1 = t2.c1)
3962 JOIN s1.t1 ON (t1.c1 = t3.c1);
3964 ------------------------------------------------
3966 Hash Cond: (t3.c1 = t2.c1)
3970 Merge Cond: (t1.c1 = t2.c1)
3971 -> Index Scan using t1_i1 on t1
3977 /*+Leading(t1 t2 t3)*/
3978 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3979 JOIN s1.t2 ON (t3.c1 = t2.c1)
3980 JOIN s1.t1 ON (t1.c1 = t3.c1);
3989 ------------------------------------------------
3991 Hash Cond: (t3.c1 = t2.c1)
3995 Merge Cond: (t1.c1 = t2.c1)
3996 -> Index Scan using t1_i1 on t1
4002 Reset join_collapse_limit;
4004 ---- No. L-3-3 join between parents or between children
4007 /*+Leading(t1 t2 t3)*/
4008 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4009 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4010 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4019 -----------------------------------------------
4021 Hash Cond: (t1.c1 = t3.c1)
4023 Hash Cond: (t1.c1 = t2.c1)
4025 -> Seq Scan on p2c1 t1
4026 -> Seq Scan on p2c1c1 t1
4027 -> Seq Scan on p2c1c2 t1
4030 -> Seq Scan on p2c2 t2
4031 -> Seq Scan on p2c2c1 t2
4032 -> Seq Scan on p2c2c2 t2
4035 -> Seq Scan on p2c3 t3
4036 -> Seq Scan on p2c3c1 t3
4037 -> Seq Scan on p2c3c2 t3
4041 /*+Leading(p2c1c1 p2c2c1 p2c3c1)*/
4042 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4043 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4044 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4048 Leading(p2c1c1 p2c2c1 p2c3c1)
4053 -----------------------------------------------
4055 Hash Cond: (t1.c1 = t3.c1)
4057 Hash Cond: (t1.c1 = t2.c1)
4059 -> Seq Scan on p2c1 t1
4060 -> Seq Scan on p2c1c1 t1
4061 -> Seq Scan on p2c1c2 t1
4064 -> Seq Scan on p2c2 t2
4065 -> Seq Scan on p2c2c1 t2
4066 -> Seq Scan on p2c2c2 t2
4069 -> Seq Scan on p2c3 t3
4070 -> Seq Scan on p2c3c1 t3
4071 -> Seq Scan on p2c3c2 t3
4075 ---- No. L-3-4 conflict leading hint
4078 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4079 JOIN s1.t2 ON (t1.c1 = t2.c1)
4080 JOIN s1.t3 ON (t1.c1 = t3.c1);
4082 ------------------------------------------
4084 Merge Cond: (t1.c1 = t2.c1)
4086 Merge Cond: (t1.c1 = t3.c1)
4087 -> Index Scan using t1_i1 on t1
4088 -> Index Scan using t3_i1 on t3
4094 /*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4095 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4096 JOIN s1.t2 ON (t1.c1 = t2.c1)
4097 JOIN s1.t3 ON (t1.c1 = t3.c1);
4098 INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4099 DETAIL: Conflict leading hint.
4109 ------------------------------------------------
4111 Hash Cond: (t3.c1 = t1.c1)
4115 Merge Cond: (t1.c1 = t2.c1)
4116 -> Index Scan using t1_i1 on t1
4123 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4124 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4125 JOIN s1.t2 ON (t1.c1 = t2.c1)
4126 JOIN s1.t3 ON (t1.c1 = t3.c1);
4127 INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
4128 DETAIL: Conflict leading hint.
4129 INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4130 DETAIL: Conflict leading hint.
4141 ------------------------------------------------
4143 Hash Cond: (t3.c1 = t1.c1)
4147 Merge Cond: (t1.c1 = t2.c1)
4148 -> Index Scan using t1_i1 on t1
4155 /*+Leading(t2 t3 t1)Leading()*/
4156 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4157 JOIN s1.t2 ON (t1.c1 = t2.c1)
4158 JOIN s1.t3 ON (t1.c1 = t3.c1);
4159 INFO: hint syntax error at or near "Leading()"
4160 DETAIL: Leading hint requires at least two relations.
4170 ------------------------------------------
4172 Merge Cond: (t1.c1 = t2.c1)
4173 -> Index Scan using t1_i1 on t1
4177 Hash Cond: (t3.c1 = t2.c1)
4184 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
4185 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4186 JOIN s1.t2 ON (t1.c1 = t2.c1)
4187 JOIN s1.t3 ON (t1.c1 = t3.c1);
4188 INFO: hint syntax error at or near "Leading()"
4189 DETAIL: Leading hint requires at least two relations.
4190 INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
4191 DETAIL: Conflict leading hint.
4202 ------------------------------------------
4204 Merge Cond: (t1.c1 = t2.c1)
4205 -> Index Scan using t1_i1 on t1
4209 Hash Cond: (t3.c1 = t2.c1)
4216 ---- No. L-3-5 hint state output
4220 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4221 JOIN s1.t2 ON (t1.c1 = t2.c1)
4222 JOIN s1.t3 ON (t1.c1 = t3.c1);
4223 INFO: hint syntax error at or near "Leading()"
4224 DETAIL: Leading hint requires at least two relations.
4233 ------------------------------------------
4235 Merge Cond: (t1.c1 = t2.c1)
4237 Merge Cond: (t1.c1 = t3.c1)
4238 -> Index Scan using t1_i1 on t1
4239 -> Index Scan using t3_i1 on t3
4247 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4248 JOIN s1.t2 ON (t1.c1 = t2.c1)
4249 JOIN s1.t3 ON (t1.c1 = t3.c1);
4250 INFO: hint syntax error at or near "Leading(t1)"
4251 DETAIL: Leading hint requires at least two relations.
4260 ------------------------------------------
4262 Merge Cond: (t1.c1 = t2.c1)
4264 Merge Cond: (t1.c1 = t3.c1)
4265 -> Index Scan using t1_i1 on t1
4266 -> Index Scan using t3_i1 on t3
4274 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4275 JOIN s1.t2 ON (t1.c1 = t2.c1)
4276 JOIN s1.t3 ON (t1.c1 = t3.c1);
4285 ------------------------------------------
4288 Merge Cond: (t1.c1 = t2.c1)
4289 -> Index Scan using t1_i1 on t1
4293 -> Index Scan using t3_i1 on t3
4294 Index Cond: (c1 = t1.c1)
4298 /*+Leading(t1 t2 t3)*/
4299 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4300 JOIN s1.t2 ON (t1.c1 = t2.c1)
4301 JOIN s1.t3 ON (t1.c1 = t3.c1);
4310 ------------------------------------------------
4312 Hash Cond: (t3.c1 = t1.c1)
4316 Merge Cond: (t1.c1 = t2.c1)
4317 -> Index Scan using t1_i1 on t1
4324 ---- No. L-3-6 specified Inner/Outer side
4328 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;
4329 INFO: hint syntax error at or near "Leading((t2))"
4330 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4339 ------------------------------------------------
4341 Merge Cond: (t1.c1 = t2.c1)
4343 Merge Cond: (t1.c1 = t4.c1)
4345 Merge Cond: (t1.c1 = t3.c1)
4346 -> Index Scan using t1_i1 on t1
4347 -> Index Scan using t3_i1 on t3
4348 -> Index Scan using t4_i1 on t4
4355 /*+Leading((t2 t3))*/
4356 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;
4365 ------------------------------------------------
4367 Join Filter: (t1.c1 = t4.c1)
4369 Join Filter: (t2.c1 = t1.c1)
4371 Merge Cond: (t2.c1 = t3.c1)
4372 -> Index Scan using t2_i1 on t2
4373 -> Index Scan using t3_i1 on t3
4374 -> Index Scan using t1_i1 on t1
4375 Index Cond: (c1 = t3.c1)
4376 -> Index Scan using t4_i1 on t4
4377 Index Cond: (c1 = t3.c1)
4381 /*+Leading((t2 t3 t4))*/
4382 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;
4383 INFO: hint syntax error at or near "Leading((t2 t3 t4))"
4384 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4393 ------------------------------------------------
4395 Merge Cond: (t1.c1 = t2.c1)
4397 Merge Cond: (t1.c1 = t4.c1)
4399 Merge Cond: (t1.c1 = t3.c1)
4400 -> Index Scan using t1_i1 on t1
4401 -> Index Scan using t3_i1 on t3
4402 -> Index Scan using t4_i1 on t4
4409 /*+Leading(((t1 t2) (t3 t4)))*/
4410 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;
4413 Leading(((t1 t2) (t3 t4)))
4419 ------------------------------------------
4421 Hash Cond: (t1.c1 = t3.c1)
4423 Merge Cond: (t1.c1 = t2.c1)
4424 -> Index Scan using t1_i1 on t1
4430 Hash Cond: (t3.c1 = t4.c1)
4437 /*+Leading((((t1 t3) t4) t2)))*/
4438 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;
4439 INFO: hint syntax error at or near ")"
4440 DETAIL: Unrecognized hint keyword ")".
4443 Leading((((t1 t3) t4) t2))
4449 ------------------------------------------------
4451 Merge Cond: (t1.c1 = t2.c1)
4453 Merge Cond: (t1.c1 = t4.c1)
4455 Merge Cond: (t1.c1 = t3.c1)
4456 -> Index Scan using t1_i1 on t1
4457 -> Index Scan using t3_i1 on t3
4458 -> Index Scan using t4_i1 on t4
4465 /*+Leading((t1 (t3 (t4 t2))))*/
4466 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;
4469 Leading((t1 (t3 (t4 t2))))
4475 ------------------------------------------------------
4477 Merge Cond: (t1.c1 = t2.c1)
4478 -> Index Scan using t1_i1 on t1
4482 Hash Cond: (t3.c1 = t2.c1)
4486 Hash Cond: (t4.c1 = t2.c1)