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)
354 Merge Cond: (t1.c1 = t3.c1)
356 Merge Cond: (t1.c1 = s2t1.c1)
357 -> Index Scan using t1_i1 on t1
358 -> Index Scan using t1_pkey on t1 s2t1
359 -> Index Scan using t3_i1 on t3
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 Scan using t1_i1 on t1
380 -> Index Scan using t3_i1 on t3
381 -> Index 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 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 -------------------------------------------------------
916 Hash Cond: (t2.c1 = "*VALUES*".column1)
919 -> Values Scan on "*VALUES*"
920 -> Index Scan using t3_i1 on t3
921 Index Cond: (c1 = "*VALUES*".column1)
922 -> Index Scan using t4_i1 on t4
923 Index Cond: (c1 = "*VALUES*".column1)
926 /*+Leading(t4 t3 t2 t1)*/
927 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;
936 -------------------------------------------------------
940 Hash Cond: (t2.c1 = "*VALUES*".column1)
943 -> Values Scan on "*VALUES*"
944 -> Index Scan using t3_i1 on t3
945 Index Cond: (c1 = "*VALUES*".column1)
946 -> Index Scan using t4_i1 on t4
947 Index Cond: (c1 = "*VALUES*".column1)
951 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;
953 ----------------------------------------------------
955 Merge Cond: (ct1.c1 = ct3.c1)
958 Hash Cond: (st1.c1 = st4.c1)
960 Hash Cond: (st1.c1 = st3.c1)
962 Hash Cond: (st1.c1 = st2.c1)
963 -> Seq Scan on t1 st1
965 -> Seq Scan on t1 st2
967 -> Seq Scan on t1 st3
969 -> Seq Scan on t1 st4
971 Merge Cond: (ct1.c1 = ct2.c1)
974 -> CTE Scan on c1 ct1
977 -> CTE Scan on c1 ct2
980 Merge Cond: (ct3.c1 = ct4.c1)
983 -> CTE Scan on c1 ct3
986 -> CTE Scan on c1 ct4
989 /*+Leading(ct4 ct3 ct2 ct1)Leading(st4 st3 st2 st1)*/
990 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;
993 Leading(ct4 ct3 ct2 ct1)
994 Leading(st4 st3 st2 st1)
1000 ---------------------------------------------------------
1002 Merge Cond: (ct1.c1 = ct2.c1)
1005 Hash Cond: (st2.c1 = st1.c1)
1007 Hash Cond: (st3.c1 = st2.c1)
1009 Hash Cond: (st3.c1 = st4.c1)
1010 -> Seq Scan on t1 st3
1012 -> Seq Scan on t1 st4
1014 -> Seq Scan on t1 st2
1016 -> Seq Scan on t1 st1
1019 -> CTE Scan on c1 ct1
1022 Merge Cond: (ct2.c1 = ct3.c1)
1025 -> CTE Scan on c1 ct2
1028 Merge Cond: (ct3.c1 = ct4.c1)
1031 -> CTE Scan on c1 ct3
1034 -> CTE Scan on c1 ct4
1038 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;
1040 ----------------------------------------------
1042 Hash Cond: (v1t1.c1 = v1t1.c1)
1044 Hash Cond: (v1t1.c1 = v1t1.c1)
1046 Hash Cond: (v1t1.c1 = v1t1.c1)
1047 -> Seq Scan on t1 v1t1
1049 -> Seq Scan on t1 v1t1
1051 -> Seq Scan on t1 v1t1
1053 -> Seq Scan on t1 v1t1
1056 /*+Leading(t4 t3 t2 t1)*/
1057 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;
1061 Leading(t4 t3 t2 t1)
1066 ----------------------------------------------
1068 Hash Cond: (v1t1.c1 = v1t1.c1)
1070 Hash Cond: (v1t1.c1 = v1t1.c1)
1072 Hash Cond: (v1t1.c1 = v1t1.c1)
1073 -> Seq Scan on t1 v1t1
1075 -> Seq Scan on t1 v1t1
1077 -> Seq Scan on t1 v1t1
1079 -> Seq Scan on t1 v1t1
1082 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;
1084 ---------------------------------------------
1086 Hash Cond: (v1t1.c1 = t4.c1)
1088 Hash Cond: (v1t1.c1 = v1t1_.c1)
1090 Hash Cond: (t3.c1 = v1t1.c1)
1093 -> Seq Scan on t1 v1t1
1095 -> Seq Scan on t1 v1t1_
1100 /*+Leading(t4 v1t1_ v1t1 t3)*/
1101 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;
1104 Leading(t4 v1t1_ v1t1 t3)
1110 ----------------------------------------------
1112 Hash Cond: (v1t1.c1 = t3.c1)
1114 Hash Cond: (v1t1_.c1 = v1t1.c1)
1116 Hash Cond: (t4.c1 = v1t1_.c1)
1119 -> Seq Scan on t1 v1t1_
1121 -> Seq Scan on t1 v1t1
1127 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;
1129 ------------------------------------------------
1131 Merge Cond: (t1.c1 = t2.c1)
1133 Merge Cond: (t1.c1 = t4.c1)
1135 Merge Cond: (t1.c1 = t3.c1)
1136 -> Index Scan using t1_i1 on t1
1137 -> Index Scan using t3_i1 on t3
1138 -> Index Scan using t4_i1 on t4
1144 /*+Leading(st4 t2 t3 t1)*/
1145 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;
1149 Leading(st4 t2 t3 t1)
1154 ------------------------------------------------
1156 Merge Cond: (t1.c1 = t2.c1)
1158 Merge Cond: (t1.c1 = t4.c1)
1160 Merge Cond: (t1.c1 = t3.c1)
1161 -> Index Scan using t1_i1 on t1
1162 -> Index Scan using t3_i1 on t3
1163 -> Index Scan using t4_i1 on t4
1169 /*+Leading(t4 t2 t3 t1)*/
1170 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;
1173 Leading(t4 t2 t3 t1)
1179 ------------------------------------------------------
1181 Merge Cond: (t1.c1 = t2.c1)
1182 -> Index Scan using t1_i1 on t1
1186 Hash Cond: (t3.c1 = t2.c1)
1190 Hash Cond: (t4.c1 = t2.c1)
1197 ---- No. L-2-1 some complexity query blocks
1200 EXPLAIN (COSTS false)
1201 SELECT max(bmt1.c1), (
1202 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)'
1204 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)'
1206 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)'
1209 -------------------------------------------------------------------
1211 InitPlan 1 (returns $0)
1214 Join Filter: (b1t1.c1 = b1t4.c1)
1216 Join Filter: (b1t1.c1 = b1t3.c1)
1218 Join Filter: (b1t1.c1 = b1t2.c1)
1219 -> Tid Scan on t1 b1t1
1220 TID Cond: (ctid = '(1,1)'::tid)
1221 -> Seq Scan on t2 b1t2
1222 Filter: (ctid = '(1,1)'::tid)
1223 -> Tid Scan on t3 b1t3
1224 TID Cond: (ctid = '(1,1)'::tid)
1225 -> Tid Scan on t4 b1t4
1226 TID Cond: (ctid = '(1,1)'::tid)
1227 InitPlan 2 (returns $1)
1230 Join Filter: (b2t1.c1 = b2t4.c1)
1232 Join Filter: (b2t1.c1 = b2t3.c1)
1234 Join Filter: (b2t1.c1 = b2t2.c1)
1235 -> Tid Scan on t1 b2t1
1236 TID Cond: (ctid = '(1,1)'::tid)
1237 -> Seq Scan on t2 b2t2
1238 Filter: (ctid = '(1,1)'::tid)
1239 -> Tid Scan on t3 b2t3
1240 TID Cond: (ctid = '(1,1)'::tid)
1241 -> Tid Scan on t4 b2t4
1242 TID Cond: (ctid = '(1,1)'::tid)
1244 Join Filter: (bmt1.c1 = bmt4.c1)
1246 Join Filter: (bmt1.c1 = bmt3.c1)
1248 Join Filter: (bmt1.c1 = bmt2.c1)
1249 -> Tid Scan on t1 bmt1
1250 TID Cond: (ctid = '(1,1)'::tid)
1251 -> Seq Scan on t2 bmt2
1252 Filter: (ctid = '(1,1)'::tid)
1253 -> Tid Scan on t3 bmt3
1254 TID Cond: (ctid = '(1,1)'::tid)
1255 -> Tid Scan on t4 bmt4
1256 TID Cond: (ctid = '(1,1)'::tid)
1260 Leading(bmt1 bmt2 bmt3 bmt4)
1261 Leading(b1t2 b1t3 b1t4 b1t1)
1262 Leading(b2t3 b2t4 b2t1 b2t2)
1264 EXPLAIN (COSTS false)
1265 SELECT max(bmt1.c1), (
1266 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)'
1268 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)'
1270 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)'
1274 Leading(bmt1 bmt2 bmt3 bmt4)
1275 Leading(b1t2 b1t3 b1t4 b1t1)
1276 Leading(b2t3 b2t4 b2t1 b2t2)
1282 -------------------------------------------------------------------
1284 InitPlan 1 (returns $0)
1287 Join Filter: (b1t2.c1 = b1t1.c1)
1289 Join Filter: (b1t2.c1 = b1t4.c1)
1291 Join Filter: (b1t2.c1 = b1t3.c1)
1292 -> Seq Scan on t2 b1t2
1293 Filter: (ctid = '(1,1)'::tid)
1294 -> Tid Scan on t3 b1t3
1295 TID Cond: (ctid = '(1,1)'::tid)
1296 -> Tid Scan on t4 b1t4
1297 TID Cond: (ctid = '(1,1)'::tid)
1298 -> Tid Scan on t1 b1t1
1299 TID Cond: (ctid = '(1,1)'::tid)
1300 InitPlan 2 (returns $1)
1303 Join Filter: (b2t1.c1 = b2t2.c1)
1305 Join Filter: (b2t3.c1 = b2t1.c1)
1307 Join Filter: (b2t3.c1 = b2t4.c1)
1308 -> Tid Scan on t3 b2t3
1309 TID Cond: (ctid = '(1,1)'::tid)
1310 -> Tid Scan on t4 b2t4
1311 TID Cond: (ctid = '(1,1)'::tid)
1312 -> Tid Scan on t1 b2t1
1313 TID Cond: (ctid = '(1,1)'::tid)
1314 -> Seq Scan on t2 b2t2
1315 Filter: (ctid = '(1,1)'::tid)
1317 Join Filter: (bmt1.c1 = bmt4.c1)
1319 Join Filter: (bmt1.c1 = bmt3.c1)
1321 Join Filter: (bmt1.c1 = bmt2.c1)
1322 -> Tid Scan on t1 bmt1
1323 TID Cond: (ctid = '(1,1)'::tid)
1324 -> Seq Scan on t2 bmt2
1325 Filter: (ctid = '(1,1)'::tid)
1326 -> Tid Scan on t3 bmt3
1327 TID Cond: (ctid = '(1,1)'::tid)
1328 -> Tid Scan on t4 bmt4
1329 TID Cond: (ctid = '(1,1)'::tid)
1333 EXPLAIN (COSTS false)
1334 SELECT max(bmt1.c1), (
1335 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)'
1337 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)'
1339 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)'
1341 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)'
1344 -------------------------------------------------------------------
1346 InitPlan 1 (returns $0)
1349 Join Filter: (b1t1.c1 = b1t4.c1)
1351 Join Filter: (b1t1.c1 = b1t3.c1)
1353 Join Filter: (b1t1.c1 = b1t2.c1)
1354 -> Tid Scan on t1 b1t1
1355 TID Cond: (ctid = '(1,1)'::tid)
1356 -> Seq Scan on t2 b1t2
1357 Filter: (ctid = '(1,1)'::tid)
1358 -> Tid Scan on t3 b1t3
1359 TID Cond: (ctid = '(1,1)'::tid)
1360 -> Tid Scan on t4 b1t4
1361 TID Cond: (ctid = '(1,1)'::tid)
1362 InitPlan 2 (returns $1)
1365 Join Filter: (b2t1.c1 = b2t4.c1)
1367 Join Filter: (b2t1.c1 = b2t3.c1)
1369 Join Filter: (b2t1.c1 = b2t2.c1)
1370 -> Tid Scan on t1 b2t1
1371 TID Cond: (ctid = '(1,1)'::tid)
1372 -> Seq Scan on t2 b2t2
1373 Filter: (ctid = '(1,1)'::tid)
1374 -> Tid Scan on t3 b2t3
1375 TID Cond: (ctid = '(1,1)'::tid)
1376 -> Tid Scan on t4 b2t4
1377 TID Cond: (ctid = '(1,1)'::tid)
1378 InitPlan 3 (returns $2)
1381 Join Filter: (b3t1.c1 = b3t4.c1)
1383 Join Filter: (b3t1.c1 = b3t3.c1)
1385 Join Filter: (b3t1.c1 = b3t2.c1)
1386 -> Tid Scan on t1 b3t1
1387 TID Cond: (ctid = '(1,1)'::tid)
1388 -> Seq Scan on t2 b3t2
1389 Filter: (ctid = '(1,1)'::tid)
1390 -> Tid Scan on t3 b3t3
1391 TID Cond: (ctid = '(1,1)'::tid)
1392 -> Tid Scan on t4 b3t4
1393 TID Cond: (ctid = '(1,1)'::tid)
1395 Join Filter: (bmt1.c1 = bmt4.c1)
1397 Join Filter: (bmt1.c1 = bmt3.c1)
1399 Join Filter: (bmt1.c1 = bmt2.c1)
1400 -> Tid Scan on t1 bmt1
1401 TID Cond: (ctid = '(1,1)'::tid)
1402 -> Seq Scan on t2 bmt2
1403 Filter: (ctid = '(1,1)'::tid)
1404 -> Tid Scan on t3 bmt3
1405 TID Cond: (ctid = '(1,1)'::tid)
1406 -> Tid Scan on t4 bmt4
1407 TID Cond: (ctid = '(1,1)'::tid)
1411 Leading(bmt1 bmt2 bmt3 bmt4)
1412 Leading(b1t2 b1t3 b1t4 b1t1)
1413 Leading(b2t3 b2t4 b2t1 b2t2)
1414 Leading(b3t4 b3t1 b3t2 b3t3)
1416 EXPLAIN (COSTS false)
1417 SELECT max(bmt1.c1), (
1418 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)'
1420 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)'
1422 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)'
1424 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)'
1428 Leading(bmt1 bmt2 bmt3 bmt4)
1429 Leading(b1t2 b1t3 b1t4 b1t1)
1430 Leading(b2t3 b2t4 b2t1 b2t2)
1431 Leading(b3t4 b3t1 b3t2 b3t3)
1437 -------------------------------------------------------------------
1439 InitPlan 1 (returns $0)
1442 Join Filter: (b1t2.c1 = b1t1.c1)
1444 Join Filter: (b1t2.c1 = b1t4.c1)
1446 Join Filter: (b1t2.c1 = b1t3.c1)
1447 -> Seq Scan on t2 b1t2
1448 Filter: (ctid = '(1,1)'::tid)
1449 -> Tid Scan on t3 b1t3
1450 TID Cond: (ctid = '(1,1)'::tid)
1451 -> Tid Scan on t4 b1t4
1452 TID Cond: (ctid = '(1,1)'::tid)
1453 -> Tid Scan on t1 b1t1
1454 TID Cond: (ctid = '(1,1)'::tid)
1455 InitPlan 2 (returns $1)
1458 Join Filter: (b2t1.c1 = b2t2.c1)
1460 Join Filter: (b2t3.c1 = b2t1.c1)
1462 Join Filter: (b2t3.c1 = b2t4.c1)
1463 -> Tid Scan on t3 b2t3
1464 TID Cond: (ctid = '(1,1)'::tid)
1465 -> Tid Scan on t4 b2t4
1466 TID Cond: (ctid = '(1,1)'::tid)
1467 -> Tid Scan on t1 b2t1
1468 TID Cond: (ctid = '(1,1)'::tid)
1469 -> Seq Scan on t2 b2t2
1470 Filter: (ctid = '(1,1)'::tid)
1471 InitPlan 3 (returns $2)
1474 Join Filter: (b3t1.c1 = b3t3.c1)
1476 Join Filter: (b3t1.c1 = b3t2.c1)
1478 Join Filter: (b3t1.c1 = b3t4.c1)
1479 -> Tid Scan on t1 b3t1
1480 TID Cond: (ctid = '(1,1)'::tid)
1481 -> Tid Scan on t4 b3t4
1482 TID Cond: (ctid = '(1,1)'::tid)
1483 -> Seq Scan on t2 b3t2
1484 Filter: (ctid = '(1,1)'::tid)
1485 -> Tid Scan on t3 b3t3
1486 TID Cond: (ctid = '(1,1)'::tid)
1488 Join Filter: (bmt1.c1 = bmt4.c1)
1490 Join Filter: (bmt1.c1 = bmt3.c1)
1492 Join Filter: (bmt1.c1 = bmt2.c1)
1493 -> Tid Scan on t1 bmt1
1494 TID Cond: (ctid = '(1,1)'::tid)
1495 -> Seq Scan on t2 bmt2
1496 Filter: (ctid = '(1,1)'::tid)
1497 -> Tid Scan on t3 bmt3
1498 TID Cond: (ctid = '(1,1)'::tid)
1499 -> Tid Scan on t4 bmt4
1500 TID Cond: (ctid = '(1,1)'::tid)
1504 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)';
1506 -----------------------------------------------------------
1509 Join Filter: (bmt1.c1 = bmt4.c1)
1511 Join Filter: (bmt1.c1 = bmt3.c1)
1513 Join Filter: (bmt1.c1 = bmt2.c1)
1514 -> Tid Scan on t1 bmt1
1515 TID Cond: (ctid = '(1,1)'::tid)
1516 -> Seq Scan on t2 bmt2
1517 Filter: (ctid = '(1,1)'::tid)
1518 -> Tid Scan on t3 bmt3
1519 TID Cond: (ctid = '(1,1)'::tid)
1520 -> Tid Scan on t4 bmt4
1521 TID Cond: (ctid = '(1,1)'::tid)
1525 Leading(bmt4 bmt3 bmt2 bmt1)
1527 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)';
1530 Leading(bmt4 bmt3 bmt2 bmt1)
1536 -----------------------------------------------------------
1539 Join Filter: (bmt2.c1 = bmt1.c1)
1541 Join Filter: (bmt3.c1 = bmt2.c1)
1543 Join Filter: (bmt3.c1 = bmt4.c1)
1544 -> Tid Scan on t3 bmt3
1545 TID Cond: (ctid = '(1,1)'::tid)
1546 -> Tid Scan on t4 bmt4
1547 TID Cond: (ctid = '(1,1)'::tid)
1548 -> Seq Scan on t2 bmt2
1549 Filter: (ctid = '(1,1)'::tid)
1550 -> Tid Scan on t1 bmt1
1551 TID Cond: (ctid = '(1,1)'::tid)
1555 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)';
1557 -----------------------------------------------------------
1560 Join Filter: (bmt1.c1 = bmt4.c1)
1562 Join Filter: (bmt1.c1 = bmt3.c1)
1564 Join Filter: (bmt1.c1 = bmt2.c1)
1565 -> Tid Scan on t1 bmt1
1566 TID Cond: (ctid = '(1,1)'::tid)
1567 -> Seq Scan on t2 bmt2
1568 Filter: (ctid = '(1,1)'::tid)
1569 -> Tid Scan on t3 bmt3
1570 TID Cond: (ctid = '(1,1)'::tid)
1571 -> Tid Scan on t4 bmt4
1572 TID Cond: (ctid = '(1,1)'::tid)
1576 Leading(bmt4 bmt3 bmt2 bmt1)
1578 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)';
1581 Leading(bmt4 bmt3 bmt2 bmt1)
1587 -----------------------------------------------------------
1590 Join Filter: (bmt2.c1 = bmt1.c1)
1592 Join Filter: (bmt3.c1 = bmt2.c1)
1594 Join Filter: (bmt3.c1 = bmt4.c1)
1595 -> Tid Scan on t3 bmt3
1596 TID Cond: (ctid = '(1,1)'::tid)
1597 -> Tid Scan on t4 bmt4
1598 TID Cond: (ctid = '(1,1)'::tid)
1599 -> Seq Scan on t2 bmt2
1600 Filter: (ctid = '(1,1)'::tid)
1601 -> Tid Scan on t1 bmt1
1602 TID Cond: (ctid = '(1,1)'::tid)
1606 EXPLAIN (COSTS false)
1607 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1609 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1611 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1615 -------------------------------------------------------------------
1617 InitPlan 1 (returns $0)
1620 Join Filter: (b1t1.c1 = b1t4.c1)
1622 Join Filter: (b1t1.c1 = b1t3.c1)
1624 Join Filter: (b1t1.c1 = b1t2.c1)
1625 -> Tid Scan on t1 b1t1
1626 TID Cond: (ctid = '(1,1)'::tid)
1627 -> Seq Scan on t2 b1t2
1628 Filter: (ctid = '(1,1)'::tid)
1629 -> Tid Scan on t3 b1t3
1630 TID Cond: (ctid = '(1,1)'::tid)
1631 -> Tid Scan on t4 b1t4
1632 TID Cond: (ctid = '(1,1)'::tid)
1633 InitPlan 2 (returns $1)
1636 Join Filter: (b2t1.c1 = b2t4.c1)
1638 Join Filter: (b2t1.c1 = b2t3.c1)
1640 Join Filter: (b2t1.c1 = b2t2.c1)
1641 -> Tid Scan on t1 b2t1
1642 TID Cond: (ctid = '(1,1)'::tid)
1643 -> Seq Scan on t2 b2t2
1644 Filter: (ctid = '(1,1)'::tid)
1645 -> Tid Scan on t3 b2t3
1646 TID Cond: (ctid = '(1,1)'::tid)
1647 -> Tid Scan on t4 b2t4
1648 TID Cond: (ctid = '(1,1)'::tid)
1650 Join Filter: (bmt1.c1 = bmt4.c1)
1652 Join Filter: (bmt1.c1 = bmt2.c1)
1654 Join Filter: (bmt1.c1 = bmt3.c1)
1655 -> Tid Scan on t1 bmt1
1656 TID Cond: (ctid = '(1,1)'::tid)
1657 Filter: ((c1 <> $0) AND (c1 <> $1))
1658 -> Tid Scan on t3 bmt3
1659 TID Cond: (ctid = '(1,1)'::tid)
1660 -> Seq Scan on t2 bmt2
1661 Filter: (ctid = '(1,1)'::tid)
1662 -> Tid Scan on t4 bmt4
1663 TID Cond: (ctid = '(1,1)'::tid)
1667 Leading(bmt1 bmt2 bmt3 bmt4)
1668 Leading(b1t2 b1t3 b1t4 b1t1)
1669 Leading(b2t3 b2t4 b2t1 b2t2)
1671 EXPLAIN (COSTS false)
1672 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)'
1674 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)'
1676 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)'
1681 Leading(bmt1 bmt2 bmt3 bmt4)
1682 Leading(b1t2 b1t3 b1t4 b1t1)
1683 Leading(b2t3 b2t4 b2t1 b2t2)
1689 -------------------------------------------------------------------
1691 InitPlan 1 (returns $0)
1694 Join Filter: (b1t2.c1 = b1t1.c1)
1696 Join Filter: (b1t2.c1 = b1t4.c1)
1698 Join Filter: (b1t2.c1 = b1t3.c1)
1699 -> Seq Scan on t2 b1t2
1700 Filter: (ctid = '(1,1)'::tid)
1701 -> Tid Scan on t3 b1t3
1702 TID Cond: (ctid = '(1,1)'::tid)
1703 -> Tid Scan on t4 b1t4
1704 TID Cond: (ctid = '(1,1)'::tid)
1705 -> Tid Scan on t1 b1t1
1706 TID Cond: (ctid = '(1,1)'::tid)
1707 InitPlan 2 (returns $1)
1710 Join Filter: (b2t1.c1 = b2t2.c1)
1712 Join Filter: (b2t3.c1 = b2t1.c1)
1714 Join Filter: (b2t3.c1 = b2t4.c1)
1715 -> Tid Scan on t3 b2t3
1716 TID Cond: (ctid = '(1,1)'::tid)
1717 -> Tid Scan on t4 b2t4
1718 TID Cond: (ctid = '(1,1)'::tid)
1719 -> Tid Scan on t1 b2t1
1720 TID Cond: (ctid = '(1,1)'::tid)
1721 -> Seq Scan on t2 b2t2
1722 Filter: (ctid = '(1,1)'::tid)
1724 Join Filter: (bmt1.c1 = bmt4.c1)
1726 Join Filter: (bmt1.c1 = bmt3.c1)
1728 Join Filter: (bmt1.c1 = bmt2.c1)
1729 -> Tid Scan on t1 bmt1
1730 TID Cond: (ctid = '(1,1)'::tid)
1731 Filter: ((c1 <> $0) AND (c1 <> $1))
1732 -> Seq Scan on t2 bmt2
1733 Filter: (ctid = '(1,1)'::tid)
1734 -> Tid Scan on t3 bmt3
1735 TID Cond: (ctid = '(1,1)'::tid)
1736 -> Tid Scan on t4 bmt4
1737 TID Cond: (ctid = '(1,1)'::tid)
1741 EXPLAIN (COSTS false)
1742 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)'
1744 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)'
1746 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)'
1748 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)'
1752 ------------------------------------------------------------------------------
1754 InitPlan 1 (returns $0)
1757 Join Filter: (b1t1.c1 = b1t4.c1)
1759 Join Filter: (b1t1.c1 = b1t3.c1)
1761 Join Filter: (b1t1.c1 = b1t2.c1)
1762 -> Tid Scan on t1 b1t1
1763 TID Cond: (ctid = '(1,1)'::tid)
1764 -> Seq Scan on t2 b1t2
1765 Filter: (ctid = '(1,1)'::tid)
1766 -> Tid Scan on t3 b1t3
1767 TID Cond: (ctid = '(1,1)'::tid)
1768 -> Tid Scan on t4 b1t4
1769 TID Cond: (ctid = '(1,1)'::tid)
1770 InitPlan 2 (returns $1)
1773 Join Filter: (b2t1.c1 = b2t4.c1)
1775 Join Filter: (b2t1.c1 = b2t3.c1)
1777 Join Filter: (b2t1.c1 = b2t2.c1)
1778 -> Tid Scan on t1 b2t1
1779 TID Cond: (ctid = '(1,1)'::tid)
1780 -> Seq Scan on t2 b2t2
1781 Filter: (ctid = '(1,1)'::tid)
1782 -> Tid Scan on t3 b2t3
1783 TID Cond: (ctid = '(1,1)'::tid)
1784 -> Tid Scan on t4 b2t4
1785 TID Cond: (ctid = '(1,1)'::tid)
1786 InitPlan 3 (returns $2)
1789 Join Filter: (b3t1.c1 = b3t4.c1)
1791 Join Filter: (b3t1.c1 = b3t3.c1)
1793 Join Filter: (b3t1.c1 = b3t2.c1)
1794 -> Tid Scan on t1 b3t1
1795 TID Cond: (ctid = '(1,1)'::tid)
1796 -> Seq Scan on t2 b3t2
1797 Filter: (ctid = '(1,1)'::tid)
1798 -> Tid Scan on t3 b3t3
1799 TID Cond: (ctid = '(1,1)'::tid)
1800 -> Tid Scan on t4 b3t4
1801 TID Cond: (ctid = '(1,1)'::tid)
1803 Join Filter: (bmt1.c1 = bmt4.c1)
1805 Join Filter: (bmt1.c1 = bmt3.c1)
1807 Join Filter: (bmt1.c1 = bmt2.c1)
1808 -> Tid Scan on t1 bmt1
1809 TID Cond: (ctid = '(1,1)'::tid)
1810 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1811 -> Seq Scan on t2 bmt2
1812 Filter: (ctid = '(1,1)'::tid)
1813 -> Tid Scan on t3 bmt3
1814 TID Cond: (ctid = '(1,1)'::tid)
1815 -> Tid Scan on t4 bmt4
1816 TID Cond: (ctid = '(1,1)'::tid)
1820 Leading(bmt1 bmt2 bmt3 bmt4)
1821 Leading(b1t2 b1t3 b1t4 b1t1)
1822 Leading(b2t3 b2t4 b2t1 b2t2)
1823 Leading(b3t4 b3t1 b3t2 b3t3)
1825 EXPLAIN (COSTS false)
1826 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)'
1828 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)'
1830 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)'
1832 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)'
1837 Leading(bmt1 bmt2 bmt3 bmt4)
1838 Leading(b1t2 b1t3 b1t4 b1t1)
1839 Leading(b2t3 b2t4 b2t1 b2t2)
1840 Leading(b3t4 b3t1 b3t2 b3t3)
1846 ------------------------------------------------------------------------------
1848 InitPlan 1 (returns $0)
1851 Join Filter: (b1t2.c1 = b1t1.c1)
1853 Join Filter: (b1t2.c1 = b1t4.c1)
1855 Join Filter: (b1t2.c1 = b1t3.c1)
1856 -> Seq Scan on t2 b1t2
1857 Filter: (ctid = '(1,1)'::tid)
1858 -> Tid Scan on t3 b1t3
1859 TID Cond: (ctid = '(1,1)'::tid)
1860 -> Tid Scan on t4 b1t4
1861 TID Cond: (ctid = '(1,1)'::tid)
1862 -> Tid Scan on t1 b1t1
1863 TID Cond: (ctid = '(1,1)'::tid)
1864 InitPlan 2 (returns $1)
1867 Join Filter: (b2t1.c1 = b2t2.c1)
1869 Join Filter: (b2t3.c1 = b2t1.c1)
1871 Join Filter: (b2t3.c1 = b2t4.c1)
1872 -> Tid Scan on t3 b2t3
1873 TID Cond: (ctid = '(1,1)'::tid)
1874 -> Tid Scan on t4 b2t4
1875 TID Cond: (ctid = '(1,1)'::tid)
1876 -> Tid Scan on t1 b2t1
1877 TID Cond: (ctid = '(1,1)'::tid)
1878 -> Seq Scan on t2 b2t2
1879 Filter: (ctid = '(1,1)'::tid)
1880 InitPlan 3 (returns $2)
1883 Join Filter: (b3t1.c1 = b3t3.c1)
1885 Join Filter: (b3t1.c1 = b3t2.c1)
1887 Join Filter: (b3t1.c1 = b3t4.c1)
1888 -> Tid Scan on t1 b3t1
1889 TID Cond: (ctid = '(1,1)'::tid)
1890 -> Tid Scan on t4 b3t4
1891 TID Cond: (ctid = '(1,1)'::tid)
1892 -> Seq Scan on t2 b3t2
1893 Filter: (ctid = '(1,1)'::tid)
1894 -> Tid Scan on t3 b3t3
1895 TID Cond: (ctid = '(1,1)'::tid)
1897 Join Filter: (bmt1.c1 = bmt4.c1)
1899 Join Filter: (bmt1.c1 = bmt3.c1)
1901 Join Filter: (bmt1.c1 = bmt2.c1)
1902 -> Tid Scan on t1 bmt1
1903 TID Cond: (ctid = '(1,1)'::tid)
1904 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1905 -> Seq Scan on t2 bmt2
1906 Filter: (ctid = '(1,1)'::tid)
1907 -> Tid Scan on t3 bmt3
1908 TID Cond: (ctid = '(1,1)'::tid)
1909 -> Tid Scan on t4 bmt4
1910 TID Cond: (ctid = '(1,1)'::tid)
1914 EXPLAIN (COSTS false)
1916 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)'
1919 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)'
1921 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1923 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)'
1928 -----------------------------------------------------------------------
1933 Join Filter: (b1t1.c1 = b1t4.c1)
1935 Join Filter: (b1t1.c1 = b1t3.c1)
1937 Join Filter: (b1t1.c1 = b1t2.c1)
1938 -> Tid Scan on t1 b1t1
1939 TID Cond: (ctid = '(1,1)'::tid)
1940 -> Seq Scan on t2 b1t2
1941 Filter: (ctid = '(1,1)'::tid)
1942 -> Tid Scan on t3 b1t3
1943 TID Cond: (ctid = '(1,1)'::tid)
1944 -> Tid Scan on t4 b1t4
1945 TID Cond: (ctid = '(1,1)'::tid)
1949 Join Filter: (b2t1.c1 = b2t4.c1)
1951 Join Filter: (b2t1.c1 = b2t3.c1)
1953 Join Filter: (b2t1.c1 = b2t2.c1)
1954 -> Tid Scan on t1 b2t1
1955 TID Cond: (ctid = '(1,1)'::tid)
1956 -> Seq Scan on t2 b2t2
1957 Filter: (ctid = '(1,1)'::tid)
1958 -> Tid Scan on t3 b2t3
1959 TID Cond: (ctid = '(1,1)'::tid)
1960 -> Tid Scan on t4 b2t4
1961 TID Cond: (ctid = '(1,1)'::tid)
1963 Join Filter: (bmt1.c1 = c2.c1)
1965 Join Filter: (bmt1.c1 = c1.c1)
1967 Join Filter: (bmt1.c1 = bmt4.c1)
1969 Join Filter: (bmt1.c1 = bmt3.c1)
1971 Join Filter: (bmt1.c1 = bmt2.c1)
1972 -> Tid Scan on t1 bmt1
1973 TID Cond: (ctid = '(1,1)'::tid)
1974 -> Seq Scan on t2 bmt2
1975 Filter: (ctid = '(1,1)'::tid)
1976 -> Tid Scan on t3 bmt3
1977 TID Cond: (ctid = '(1,1)'::tid)
1978 -> Tid Scan on t4 bmt4
1979 TID Cond: (ctid = '(1,1)'::tid)
1985 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1986 Leading(b1t2 b1t3 b1t4 b1t1)
1987 Leading(b2t3 b2t4 b2t1 b2t2)
1989 EXPLAIN (COSTS false)
1991 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)'
1994 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)'
1996 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1998 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)'
2004 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2005 Leading(b1t2 b1t3 b1t4 b1t1)
2006 Leading(b2t3 b2t4 b2t1 b2t2)
2012 -------------------------------------------------------------------
2017 Join Filter: (b1t2.c1 = b1t1.c1)
2019 Join Filter: (b1t2.c1 = b1t4.c1)
2021 Join Filter: (b1t2.c1 = b1t3.c1)
2022 -> Seq Scan on t2 b1t2
2023 Filter: (ctid = '(1,1)'::tid)
2024 -> Tid Scan on t3 b1t3
2025 TID Cond: (ctid = '(1,1)'::tid)
2026 -> Tid Scan on t4 b1t4
2027 TID Cond: (ctid = '(1,1)'::tid)
2028 -> Tid Scan on t1 b1t1
2029 TID Cond: (ctid = '(1,1)'::tid)
2033 Join Filter: (b2t1.c1 = b2t2.c1)
2035 Join Filter: (b2t3.c1 = b2t1.c1)
2037 Join Filter: (b2t3.c1 = b2t4.c1)
2038 -> Tid Scan on t3 b2t3
2039 TID Cond: (ctid = '(1,1)'::tid)
2040 -> Tid Scan on t4 b2t4
2041 TID Cond: (ctid = '(1,1)'::tid)
2042 -> Tid Scan on t1 b2t1
2043 TID Cond: (ctid = '(1,1)'::tid)
2044 -> Seq Scan on t2 b2t2
2045 Filter: (ctid = '(1,1)'::tid)
2047 Join Filter: (bmt1.c1 = bmt4.c1)
2049 Join Filter: (bmt1.c1 = bmt3.c1)
2051 Join Filter: (bmt1.c1 = bmt2.c1)
2053 Join Filter: (c1.c1 = bmt1.c1)
2055 Join Filter: (c1.c1 = c2.c1)
2058 -> Tid Scan on t1 bmt1
2059 TID Cond: (ctid = '(1,1)'::tid)
2060 -> Seq Scan on t2 bmt2
2061 Filter: (ctid = '(1,1)'::tid)
2062 -> Tid Scan on t3 bmt3
2063 TID Cond: (ctid = '(1,1)'::tid)
2064 -> Tid Scan on t4 bmt4
2065 TID Cond: (ctid = '(1,1)'::tid)
2069 EXPLAIN (COSTS false)
2071 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)'
2074 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)'
2077 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)'
2079 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2081 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)'
2087 -----------------------------------------------------------------------------
2092 Join Filter: (b1t1.c1 = b1t4.c1)
2094 Join Filter: (b1t1.c1 = b1t3.c1)
2096 Join Filter: (b1t1.c1 = b1t2.c1)
2097 -> Tid Scan on t1 b1t1
2098 TID Cond: (ctid = '(1,1)'::tid)
2099 -> Seq Scan on t2 b1t2
2100 Filter: (ctid = '(1,1)'::tid)
2101 -> Tid Scan on t3 b1t3
2102 TID Cond: (ctid = '(1,1)'::tid)
2103 -> Tid Scan on t4 b1t4
2104 TID Cond: (ctid = '(1,1)'::tid)
2108 Join Filter: (b2t1.c1 = b2t4.c1)
2110 Join Filter: (b2t1.c1 = b2t3.c1)
2112 Join Filter: (b2t1.c1 = b2t2.c1)
2113 -> Tid Scan on t1 b2t1
2114 TID Cond: (ctid = '(1,1)'::tid)
2115 -> Seq Scan on t2 b2t2
2116 Filter: (ctid = '(1,1)'::tid)
2117 -> Tid Scan on t3 b2t3
2118 TID Cond: (ctid = '(1,1)'::tid)
2119 -> Tid Scan on t4 b2t4
2120 TID Cond: (ctid = '(1,1)'::tid)
2124 Join Filter: (b3t1.c1 = b3t4.c1)
2126 Join Filter: (b3t1.c1 = b3t3.c1)
2128 Join Filter: (b3t1.c1 = b3t2.c1)
2129 -> Tid Scan on t1 b3t1
2130 TID Cond: (ctid = '(1,1)'::tid)
2131 -> Seq Scan on t2 b3t2
2132 Filter: (ctid = '(1,1)'::tid)
2133 -> Tid Scan on t3 b3t3
2134 TID Cond: (ctid = '(1,1)'::tid)
2135 -> Tid Scan on t4 b3t4
2136 TID Cond: (ctid = '(1,1)'::tid)
2138 Join Filter: (bmt1.c1 = c3.c1)
2140 Join Filter: (bmt1.c1 = c2.c1)
2142 Join Filter: (bmt1.c1 = c1.c1)
2144 Join Filter: (bmt1.c1 = bmt4.c1)
2146 Join Filter: (bmt1.c1 = bmt3.c1)
2148 Join Filter: (bmt1.c1 = bmt2.c1)
2149 -> Tid Scan on t1 bmt1
2150 TID Cond: (ctid = '(1,1)'::tid)
2151 -> Seq Scan on t2 bmt2
2152 Filter: (ctid = '(1,1)'::tid)
2153 -> Tid Scan on t3 bmt3
2154 TID Cond: (ctid = '(1,1)'::tid)
2155 -> Tid Scan on t4 bmt4
2156 TID Cond: (ctid = '(1,1)'::tid)
2163 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2164 Leading(b1t2 b1t3 b1t4 b1t1)
2165 Leading(b2t3 b2t4 b2t1 b2t2)
2166 Leading(b3t4 b3t1 b3t2 b3t3)
2168 EXPLAIN (COSTS false)
2170 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)'
2173 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)'
2176 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)'
2178 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2180 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)'
2187 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2188 Leading(b1t2 b1t3 b1t4 b1t1)
2189 Leading(b2t3 b2t4 b2t1 b2t2)
2190 Leading(b3t4 b3t1 b3t2 b3t3)
2196 --------------------------------------------------------------------
2201 Join Filter: (b1t2.c1 = b1t1.c1)
2203 Join Filter: (b1t2.c1 = b1t4.c1)
2205 Join Filter: (b1t2.c1 = b1t3.c1)
2206 -> Seq Scan on t2 b1t2
2207 Filter: (ctid = '(1,1)'::tid)
2208 -> Tid Scan on t3 b1t3
2209 TID Cond: (ctid = '(1,1)'::tid)
2210 -> Tid Scan on t4 b1t4
2211 TID Cond: (ctid = '(1,1)'::tid)
2212 -> Tid Scan on t1 b1t1
2213 TID Cond: (ctid = '(1,1)'::tid)
2217 Join Filter: (b2t1.c1 = b2t2.c1)
2219 Join Filter: (b2t3.c1 = b2t1.c1)
2221 Join Filter: (b2t3.c1 = b2t4.c1)
2222 -> Tid Scan on t3 b2t3
2223 TID Cond: (ctid = '(1,1)'::tid)
2224 -> Tid Scan on t4 b2t4
2225 TID Cond: (ctid = '(1,1)'::tid)
2226 -> Tid Scan on t1 b2t1
2227 TID Cond: (ctid = '(1,1)'::tid)
2228 -> Seq Scan on t2 b2t2
2229 Filter: (ctid = '(1,1)'::tid)
2233 Join Filter: (b3t1.c1 = b3t3.c1)
2235 Join Filter: (b3t1.c1 = b3t2.c1)
2237 Join Filter: (b3t1.c1 = b3t4.c1)
2238 -> Tid Scan on t1 b3t1
2239 TID Cond: (ctid = '(1,1)'::tid)
2240 -> Tid Scan on t4 b3t4
2241 TID Cond: (ctid = '(1,1)'::tid)
2242 -> Seq Scan on t2 b3t2
2243 Filter: (ctid = '(1,1)'::tid)
2244 -> Tid Scan on t3 b3t3
2245 TID Cond: (ctid = '(1,1)'::tid)
2247 Join Filter: (bmt1.c1 = bmt4.c1)
2249 Join Filter: (bmt1.c1 = bmt3.c1)
2251 Join Filter: (bmt1.c1 = bmt2.c1)
2253 Join Filter: (c1.c1 = bmt1.c1)
2255 Join Filter: (c2.c1 = c1.c1)
2257 Join Filter: (c2.c1 = c3.c1)
2261 -> Tid Scan on t1 bmt1
2262 TID Cond: (ctid = '(1,1)'::tid)
2263 -> Seq Scan on t2 bmt2
2264 Filter: (ctid = '(1,1)'::tid)
2265 -> Tid Scan on t3 bmt3
2266 TID Cond: (ctid = '(1,1)'::tid)
2267 -> Tid Scan on t4 bmt4
2268 TID Cond: (ctid = '(1,1)'::tid)
2272 ---- No. L-2-2 the number of the tables per quiry block
2275 EXPLAIN (COSTS false)
2277 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2279 SELECT max(bmt1.c1), (
2280 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2282 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2284 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2288 -----------------------------------------------------------------
2292 InitPlan 1 (returns $0)
2294 -> Tid Scan on t1 b1t1
2295 TID Cond: (ctid = '(1,1)'::tid)
2296 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2297 InitPlan 4 (returns $3)
2299 InitPlan 3 (returns $2)
2301 -> Tid Scan on t1 b2t1
2302 TID Cond: (ctid = '(1,1)'::tid)
2303 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2304 InitPlan 6 (returns $5)
2306 InitPlan 5 (returns $4)
2308 -> Tid Scan on t1 b3t1
2309 TID Cond: (ctid = '(1,1)'::tid)
2310 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2312 -> Tid Scan on t1 bmt1
2313 TID Cond: (ctid = '(1,1)'::tid)
2314 Filter: ((c1 <> $5) AND (c1 = 1))
2321 EXPLAIN (COSTS false)
2323 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2325 SELECT max(bmt1.c1), (
2326 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2328 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2330 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2341 -----------------------------------------------------------------
2345 InitPlan 1 (returns $0)
2347 -> Tid Scan on t1 b1t1
2348 TID Cond: (ctid = '(1,1)'::tid)
2349 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2350 InitPlan 4 (returns $3)
2352 InitPlan 3 (returns $2)
2354 -> Tid Scan on t1 b2t1
2355 TID Cond: (ctid = '(1,1)'::tid)
2356 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2357 InitPlan 6 (returns $5)
2359 InitPlan 5 (returns $4)
2361 -> Tid Scan on t1 b3t1
2362 TID Cond: (ctid = '(1,1)'::tid)
2363 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2365 -> Tid Scan on t1 bmt1
2366 TID Cond: (ctid = '(1,1)'::tid)
2367 Filter: ((c1 <> $5) AND (c1 = 1))
2372 EXPLAIN (COSTS false)
2374 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)'
2376 SELECT max(bmt1.c1), (
2377 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)'
2379 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2382 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)'
2386 -------------------------------------------------------
2391 Join Filter: (b1t1.c1 = b1t2.c1)
2392 -> Tid Scan on t1 b1t1
2393 TID Cond: (ctid = '(1,1)'::tid)
2394 -> Seq Scan on t2 b1t2
2395 Filter: (ctid = '(1,1)'::tid)
2396 InitPlan 2 (returns $1)
2399 Join Filter: (b2t1.c1 = b2t2.c1)
2400 -> Tid Scan on t1 b2t1
2401 TID Cond: (ctid = '(1,1)'::tid)
2402 -> Seq Scan on t2 b2t2
2403 Filter: (ctid = '(1,1)'::tid)
2404 InitPlan 3 (returns $2)
2407 Join Filter: (b3t1.c1 = b3t2.c1)
2408 -> Tid Scan on t1 b3t1
2409 TID Cond: (ctid = '(1,1)'::tid)
2410 -> Seq Scan on t2 b3t2
2411 Filter: (ctid = '(1,1)'::tid)
2413 Join Filter: (bmt1.c1 = c1.c1)
2415 Join Filter: (bmt1.c1 = bmt2.c1)
2416 -> Tid Scan on t1 bmt1
2417 TID Cond: (ctid = '(1,1)'::tid)
2419 -> Seq Scan on t2 bmt2
2420 Filter: (ctid = '(1,1)'::tid)
2425 Leading(c1 bmt2 bmt1)
2430 EXPLAIN (COSTS false)
2432 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)'
2434 SELECT max(bmt1.c1), (
2435 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)'
2437 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2440 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)'
2445 Leading(c1 bmt2 bmt1)
2454 -------------------------------------------------------
2459 Join Filter: (b1t1.c1 = b1t2.c1)
2460 -> Tid Scan on t1 b1t1
2461 TID Cond: (ctid = '(1,1)'::tid)
2462 -> Seq Scan on t2 b1t2
2463 Filter: (ctid = '(1,1)'::tid)
2464 InitPlan 2 (returns $1)
2467 Join Filter: (b2t1.c1 = b2t2.c1)
2468 -> Tid Scan on t1 b2t1
2469 TID Cond: (ctid = '(1,1)'::tid)
2470 -> Seq Scan on t2 b2t2
2471 Filter: (ctid = '(1,1)'::tid)
2472 InitPlan 3 (returns $2)
2475 Join Filter: (b3t1.c1 = b3t2.c1)
2476 -> Tid Scan on t1 b3t1
2477 TID Cond: (ctid = '(1,1)'::tid)
2478 -> Seq Scan on t2 b3t2
2479 Filter: (ctid = '(1,1)'::tid)
2481 Join Filter: (bmt2.c1 = bmt1.c1)
2483 Join Filter: (bmt2.c1 = c1.c1)
2484 -> Seq Scan on t2 bmt2
2485 Filter: (ctid = '(1,1)'::tid)
2487 -> Tid Scan on t1 bmt1
2488 TID Cond: (ctid = '(1,1)'::tid)
2493 EXPLAIN (COSTS false)
2495 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)'
2497 SELECT max(bmt1.c1), (
2498 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)'
2500 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
2502 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)'
2506 -------------------------------------------------------------------
2511 Join Filter: (b1t1.c1 = b1t4.c1)
2513 Join Filter: (b1t1.c1 = b1t3.c1)
2515 Join Filter: (b1t1.c1 = b1t2.c1)
2516 -> Tid Scan on t1 b1t1
2517 TID Cond: (ctid = '(1,1)'::tid)
2518 -> Seq Scan on t2 b1t2
2519 Filter: (ctid = '(1,1)'::tid)
2520 -> Tid Scan on t3 b1t3
2521 TID Cond: (ctid = '(1,1)'::tid)
2522 -> Tid Scan on t4 b1t4
2523 TID Cond: (ctid = '(1,1)'::tid)
2524 InitPlan 2 (returns $1)
2527 Join Filter: (b2t1.c1 = b2t4.c1)
2529 Join Filter: (b2t1.c1 = b2t3.c1)
2531 Join Filter: (b2t1.c1 = b2t2.c1)
2532 -> Tid Scan on t1 b2t1
2533 TID Cond: (ctid = '(1,1)'::tid)
2534 -> Seq Scan on t2 b2t2
2535 Filter: (ctid = '(1,1)'::tid)
2536 -> Tid Scan on t3 b2t3
2537 TID Cond: (ctid = '(1,1)'::tid)
2538 -> Tid Scan on t4 b2t4
2539 TID Cond: (ctid = '(1,1)'::tid)
2540 InitPlan 3 (returns $2)
2543 Join Filter: (b3t1.c1 = b3t4.c1)
2545 Join Filter: (b3t1.c1 = b3t3.c1)
2547 Join Filter: (b3t1.c1 = b3t2.c1)
2548 -> Tid Scan on t1 b3t1
2549 TID Cond: (ctid = '(1,1)'::tid)
2550 -> Seq Scan on t2 b3t2
2551 Filter: (ctid = '(1,1)'::tid)
2552 -> Tid Scan on t3 b3t3
2553 TID Cond: (ctid = '(1,1)'::tid)
2554 -> Tid Scan on t4 b3t4
2555 TID Cond: (ctid = '(1,1)'::tid)
2557 Join Filter: (bmt1.c1 = c1.c1)
2559 Join Filter: (bmt1.c1 = bmt2.c1)
2561 Join Filter: (bmt3.c1 = bmt1.c1)
2563 Join Filter: (bmt3.c1 = bmt4.c1)
2564 -> Tid Scan on t3 bmt3
2565 TID Cond: (ctid = '(1,1)'::tid)
2566 -> Tid Scan on t4 bmt4
2567 TID Cond: (ctid = '(1,1)'::tid)
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)
2577 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2578 Leading(b1t4 b1t3 b1t2 b1t1)
2579 Leading(b2t4 b2t3 b2t2 b2t1)
2580 Leading(b3t4 b3t3 b3t2 b3t1)
2582 EXPLAIN (COSTS false)
2584 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)'
2586 SELECT max(bmt1.c1), (
2587 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)'
2589 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
2591 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)'
2596 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2597 Leading(b1t4 b1t3 b1t2 b1t1)
2598 Leading(b2t4 b2t3 b2t2 b2t1)
2599 Leading(b3t4 b3t3 b3t2 b3t1)
2605 -------------------------------------------------------------------
2610 Join Filter: (b1t2.c1 = b1t1.c1)
2612 Join Filter: (b1t3.c1 = b1t2.c1)
2614 Join Filter: (b1t3.c1 = b1t4.c1)
2615 -> Tid Scan on t3 b1t3
2616 TID Cond: (ctid = '(1,1)'::tid)
2617 -> Tid Scan on t4 b1t4
2618 TID Cond: (ctid = '(1,1)'::tid)
2619 -> Seq Scan on t2 b1t2
2620 Filter: (ctid = '(1,1)'::tid)
2621 -> Tid Scan on t1 b1t1
2622 TID Cond: (ctid = '(1,1)'::tid)
2623 InitPlan 2 (returns $1)
2626 Join Filter: (b2t2.c1 = b2t1.c1)
2628 Join Filter: (b2t3.c1 = b2t2.c1)
2630 Join Filter: (b2t3.c1 = b2t4.c1)
2631 -> Tid Scan on t3 b2t3
2632 TID Cond: (ctid = '(1,1)'::tid)
2633 -> Tid Scan on t4 b2t4
2634 TID Cond: (ctid = '(1,1)'::tid)
2635 -> Seq Scan on t2 b2t2
2636 Filter: (ctid = '(1,1)'::tid)
2637 -> Tid Scan on t1 b2t1
2638 TID Cond: (ctid = '(1,1)'::tid)
2639 InitPlan 3 (returns $2)
2642 Join Filter: (b3t2.c1 = b3t1.c1)
2644 Join Filter: (b3t3.c1 = b3t2.c1)
2646 Join Filter: (b3t3.c1 = b3t4.c1)
2647 -> Tid Scan on t3 b3t3
2648 TID Cond: (ctid = '(1,1)'::tid)
2649 -> Tid Scan on t4 b3t4
2650 TID Cond: (ctid = '(1,1)'::tid)
2651 -> Seq Scan on t2 b3t2
2652 Filter: (ctid = '(1,1)'::tid)
2653 -> Tid Scan on t1 b3t1
2654 TID Cond: (ctid = '(1,1)'::tid)
2656 Join Filter: (bmt2.c1 = bmt1.c1)
2658 Join Filter: (bmt3.c1 = bmt2.c1)
2660 Join Filter: (bmt4.c1 = bmt3.c1)
2662 Join Filter: (bmt4.c1 = c1.c1)
2663 -> Tid Scan on t4 bmt4
2664 TID Cond: (ctid = '(1,1)'::tid)
2666 -> Tid Scan on t3 bmt3
2667 TID Cond: (ctid = '(1,1)'::tid)
2668 -> Seq Scan on t2 bmt2
2669 Filter: (ctid = '(1,1)'::tid)
2670 -> Tid Scan on t1 bmt1
2671 TID Cond: (ctid = '(1,1)'::tid)
2676 EXPLAIN (COSTS false)
2678 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)'
2680 SELECT max(bmt1.c1), (
2681 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2683 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
2685 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2689 -------------------------------------------------------------------
2694 Join Filter: (b1t1.c1 = b1t4.c1)
2696 Join Filter: (b1t1.c1 = b1t3.c1)
2698 Join Filter: (b1t1.c1 = b1t2.c1)
2699 -> Tid Scan on t1 b1t1
2700 TID Cond: (ctid = '(1,1)'::tid)
2701 -> Seq Scan on t2 b1t2
2702 Filter: (ctid = '(1,1)'::tid)
2703 -> Tid Scan on t3 b1t3
2704 TID Cond: (ctid = '(1,1)'::tid)
2705 -> Tid Scan on t4 b1t4
2706 TID Cond: (ctid = '(1,1)'::tid)
2707 InitPlan 3 (returns $2)
2709 InitPlan 2 (returns $1)
2711 -> Tid Scan on t1 b2t1
2712 TID Cond: (ctid = '(1,1)'::tid)
2713 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2714 InitPlan 4 (returns $3)
2716 -> Tid Scan on t1 b3t1
2717 TID Cond: (ctid = '(1,1)'::tid)
2719 Join Filter: (bmt1.c1 = c1.c1)
2721 Join Filter: (bmt1.c1 = bmt2.c1)
2723 Join Filter: (bmt3.c1 = bmt1.c1)
2725 Join Filter: (bmt3.c1 = bmt4.c1)
2726 -> Tid Scan on t3 bmt3
2727 TID Cond: (ctid = '(1,1)'::tid)
2728 -> Tid Scan on t4 bmt4
2729 TID Cond: (ctid = '(1,1)'::tid)
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)
2739 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2740 Leading(b1t4 b1t3 b1t2 b1t1)
2742 EXPLAIN (COSTS false)
2744 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)'
2746 SELECT max(bmt1.c1), (
2747 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2749 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
2751 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2756 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2757 Leading(b1t4 b1t3 b1t2 b1t1)
2763 -------------------------------------------------------------------
2768 Join Filter: (b1t2.c1 = b1t1.c1)
2770 Join Filter: (b1t3.c1 = b1t2.c1)
2772 Join Filter: (b1t3.c1 = b1t4.c1)
2773 -> Tid Scan on t3 b1t3
2774 TID Cond: (ctid = '(1,1)'::tid)
2775 -> Tid Scan on t4 b1t4
2776 TID Cond: (ctid = '(1,1)'::tid)
2777 -> Seq Scan on t2 b1t2
2778 Filter: (ctid = '(1,1)'::tid)
2779 -> Tid Scan on t1 b1t1
2780 TID Cond: (ctid = '(1,1)'::tid)
2781 InitPlan 3 (returns $2)
2783 InitPlan 2 (returns $1)
2785 -> Tid Scan on t1 b2t1
2786 TID Cond: (ctid = '(1,1)'::tid)
2787 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2788 InitPlan 4 (returns $3)
2790 -> Tid Scan on t1 b3t1
2791 TID Cond: (ctid = '(1,1)'::tid)
2793 Join Filter: (bmt2.c1 = bmt1.c1)
2795 Join Filter: (bmt3.c1 = bmt2.c1)
2797 Join Filter: (bmt4.c1 = bmt3.c1)
2799 Join Filter: (bmt4.c1 = c1.c1)
2800 -> Tid Scan on t4 bmt4
2801 TID Cond: (ctid = '(1,1)'::tid)
2803 -> Tid Scan on t3 bmt3
2804 TID Cond: (ctid = '(1,1)'::tid)
2805 -> Seq Scan on t2 bmt2
2806 Filter: (ctid = '(1,1)'::tid)
2807 -> Tid Scan on t1 bmt1
2808 TID Cond: (ctid = '(1,1)'::tid)
2813 ---- No. L-2-3 RULE or VIEW
2816 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2818 -----------------------------------------------------------------
2821 Join Filter: (t1.c1 = t4.c1)
2823 Join Filter: (t1.c1 = t3.c1)
2825 Join Filter: (t2.c1 = t1.c1)
2828 TID Cond: (ctid = '(1,1)'::tid)
2831 Filter: (ctid = '(1,1)'::tid)
2833 TID Cond: (ctid = '(1,1)'::tid)
2835 TID Cond: (ctid = '(1,1)'::tid)
2837 TID Cond: (ctid = '(1,1)'::tid)
2840 /*+ Leading(t4 t3 t2 t1 r1) */
2841 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2844 Leading(t4 t3 t2 t1 r1)
2850 -----------------------------------------------------------------
2854 Join Filter: (t2.c1 = t1.c1)
2856 Join Filter: (t3.c1 = t2.c1)
2858 Join Filter: (t3.c1 = t4.c1)
2860 TID Cond: (ctid = '(1,1)'::tid)
2862 TID Cond: (ctid = '(1,1)'::tid)
2864 Filter: (ctid = '(1,1)'::tid)
2866 TID Cond: (ctid = '(1,1)'::tid)
2868 TID Cond: (ctid = '(1,1)'::tid)
2872 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2874 -----------------------------------------------------------------
2877 Join Filter: (b1t1.c1 = b1t4.c1)
2879 Join Filter: (b1t1.c1 = b1t3.c1)
2881 Join Filter: (b1t2.c1 = b1t1.c1)
2884 TID Cond: (ctid = '(1,1)'::tid)
2886 -> Seq Scan on t2 b1t2
2887 Filter: (ctid = '(1,1)'::tid)
2888 -> Tid Scan on t1 b1t1
2889 TID Cond: (ctid = '(1,1)'::tid)
2890 -> Tid Scan on t3 b1t3
2891 TID Cond: (ctid = '(1,1)'::tid)
2892 -> Tid Scan on t4 b1t4
2893 TID Cond: (ctid = '(1,1)'::tid)
2896 /*+ Leading(b1t1 b1t2 b1t3 b1t4 r1_) */
2897 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2900 Leading(b1t1 b1t2 b1t3 b1t4 r1_)
2906 -----------------------------------------------------------------
2910 Join Filter: (b1t1.c1 = b1t4.c1)
2912 Join Filter: (b1t1.c1 = b1t3.c1)
2914 Join Filter: (b1t1.c1 = b1t2.c1)
2915 -> Tid Scan on t1 b1t1
2916 TID Cond: (ctid = '(1,1)'::tid)
2917 -> Seq Scan on t2 b1t2
2918 Filter: (ctid = '(1,1)'::tid)
2919 -> Tid Scan on t3 b1t3
2920 TID Cond: (ctid = '(1,1)'::tid)
2921 -> Tid Scan on t4 b1t4
2922 TID Cond: (ctid = '(1,1)'::tid)
2924 TID Cond: (ctid = '(1,1)'::tid)
2929 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2931 -----------------------------------------------------------------
2934 Join Filter: (t1.c1 = t4.c1)
2936 Join Filter: (t1.c1 = t3.c1)
2938 Join Filter: (t2.c1 = t1.c1)
2941 TID Cond: (ctid = '(1,1)'::tid)
2944 Filter: (ctid = '(1,1)'::tid)
2946 TID Cond: (ctid = '(1,1)'::tid)
2948 TID Cond: (ctid = '(1,1)'::tid)
2950 TID Cond: (ctid = '(1,1)'::tid)
2954 Join Filter: (t1.c1 = t4.c1)
2956 Join Filter: (t1.c1 = t3.c1)
2958 Join Filter: (t2.c1 = t1.c1)
2961 TID Cond: (ctid = '(1,1)'::tid)
2964 Filter: (ctid = '(1,1)'::tid)
2966 TID Cond: (ctid = '(1,1)'::tid)
2968 TID Cond: (ctid = '(1,1)'::tid)
2970 TID Cond: (ctid = '(1,1)'::tid)
2973 /*+ Leading(t4 t3 t2 t1 r2) */
2974 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2977 Leading(t4 t3 t2 t1 r2)
2984 Leading(t4 t3 t2 t1 r2)
2990 -----------------------------------------------------------------
2994 Join Filter: (t2.c1 = t1.c1)
2996 Join Filter: (t3.c1 = t2.c1)
2998 Join Filter: (t3.c1 = t4.c1)
3000 TID Cond: (ctid = '(1,1)'::tid)
3002 TID Cond: (ctid = '(1,1)'::tid)
3004 Filter: (ctid = '(1,1)'::tid)
3006 TID Cond: (ctid = '(1,1)'::tid)
3008 TID Cond: (ctid = '(1,1)'::tid)
3014 Join Filter: (t2.c1 = t1.c1)
3016 Join Filter: (t3.c1 = t2.c1)
3018 Join Filter: (t3.c1 = t4.c1)
3020 TID Cond: (ctid = '(1,1)'::tid)
3022 TID Cond: (ctid = '(1,1)'::tid)
3024 Filter: (ctid = '(1,1)'::tid)
3026 TID Cond: (ctid = '(1,1)'::tid)
3028 TID Cond: (ctid = '(1,1)'::tid)
3032 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3034 -----------------------------------------------------------------
3037 Join Filter: (b1t1.c1 = b1t4.c1)
3039 Join Filter: (b1t1.c1 = b1t3.c1)
3041 Join Filter: (b1t2.c1 = b1t1.c1)
3044 TID Cond: (ctid = '(1,1)'::tid)
3046 -> Seq Scan on t2 b1t2
3047 Filter: (ctid = '(1,1)'::tid)
3048 -> Tid Scan on t1 b1t1
3049 TID Cond: (ctid = '(1,1)'::tid)
3050 -> Tid Scan on t3 b1t3
3051 TID Cond: (ctid = '(1,1)'::tid)
3052 -> Tid Scan on t4 b1t4
3053 TID Cond: (ctid = '(1,1)'::tid)
3057 Join Filter: (b2t1.c1 = b2t4.c1)
3059 Join Filter: (b2t1.c1 = b2t3.c1)
3061 Join Filter: (b2t2.c1 = b2t1.c1)
3064 TID Cond: (ctid = '(1,1)'::tid)
3066 -> Seq Scan on t2 b2t2
3067 Filter: (ctid = '(1,1)'::tid)
3068 -> Tid Scan on t1 b2t1
3069 TID Cond: (ctid = '(1,1)'::tid)
3070 -> Tid Scan on t3 b2t3
3071 TID Cond: (ctid = '(1,1)'::tid)
3072 -> Tid Scan on t4 b2t4
3073 TID Cond: (ctid = '(1,1)'::tid)
3077 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3078 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3080 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3083 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3085 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3091 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3093 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3098 -----------------------------------------------------------------
3102 Join Filter: (b1t1.c1 = b1t4.c1)
3104 Join Filter: (b1t1.c1 = b1t3.c1)
3106 Join Filter: (b1t1.c1 = b1t2.c1)
3107 -> Tid Scan on t1 b1t1
3108 TID Cond: (ctid = '(1,1)'::tid)
3109 -> Seq Scan on t2 b1t2
3110 Filter: (ctid = '(1,1)'::tid)
3111 -> Tid Scan on t3 b1t3
3112 TID Cond: (ctid = '(1,1)'::tid)
3113 -> Tid Scan on t4 b1t4
3114 TID Cond: (ctid = '(1,1)'::tid)
3116 TID Cond: (ctid = '(1,1)'::tid)
3122 Join Filter: (b2t1.c1 = b2t4.c1)
3124 Join Filter: (b2t1.c1 = b2t3.c1)
3126 Join Filter: (b2t1.c1 = b2t2.c1)
3127 -> Tid Scan on t1 b2t1
3128 TID Cond: (ctid = '(1,1)'::tid)
3129 -> Seq Scan on t2 b2t2
3130 Filter: (ctid = '(1,1)'::tid)
3131 -> Tid Scan on t3 b2t3
3132 TID Cond: (ctid = '(1,1)'::tid)
3133 -> Tid Scan on t4 b2t4
3134 TID Cond: (ctid = '(1,1)'::tid)
3136 TID Cond: (ctid = '(1,1)'::tid)
3141 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3143 -----------------------------------------------------------------
3146 Join Filter: (t1.c1 = t4.c1)
3148 Join Filter: (t1.c1 = t3.c1)
3150 Join Filter: (t2.c1 = t1.c1)
3153 TID Cond: (ctid = '(1,1)'::tid)
3156 Filter: (ctid = '(1,1)'::tid)
3158 TID Cond: (ctid = '(1,1)'::tid)
3160 TID Cond: (ctid = '(1,1)'::tid)
3162 TID Cond: (ctid = '(1,1)'::tid)
3166 Join Filter: (t1.c1 = t4.c1)
3168 Join Filter: (t1.c1 = t3.c1)
3170 Join Filter: (t2.c1 = t1.c1)
3173 TID Cond: (ctid = '(1,1)'::tid)
3176 Filter: (ctid = '(1,1)'::tid)
3178 TID Cond: (ctid = '(1,1)'::tid)
3180 TID Cond: (ctid = '(1,1)'::tid)
3182 TID Cond: (ctid = '(1,1)'::tid)
3186 Join Filter: (t1.c1 = t4.c1)
3188 Join Filter: (t1.c1 = t3.c1)
3190 Join Filter: (t2.c1 = t1.c1)
3193 TID Cond: (ctid = '(1,1)'::tid)
3196 Filter: (ctid = '(1,1)'::tid)
3198 TID Cond: (ctid = '(1,1)'::tid)
3200 TID Cond: (ctid = '(1,1)'::tid)
3202 TID Cond: (ctid = '(1,1)'::tid)
3205 /*+ Leading(t4 t3 t2 t1 r3) */
3206 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3209 Leading(t4 t3 t2 t1 r3)
3216 Leading(t4 t3 t2 t1 r3)
3223 Leading(t4 t3 t2 t1 r3)
3229 -----------------------------------------------------------------
3233 Join Filter: (t2.c1 = t1.c1)
3235 Join Filter: (t3.c1 = t2.c1)
3237 Join Filter: (t3.c1 = t4.c1)
3239 TID Cond: (ctid = '(1,1)'::tid)
3241 TID Cond: (ctid = '(1,1)'::tid)
3243 Filter: (ctid = '(1,1)'::tid)
3245 TID Cond: (ctid = '(1,1)'::tid)
3247 TID Cond: (ctid = '(1,1)'::tid)
3253 Join Filter: (t2.c1 = t1.c1)
3255 Join Filter: (t3.c1 = t2.c1)
3257 Join Filter: (t3.c1 = t4.c1)
3259 TID Cond: (ctid = '(1,1)'::tid)
3261 TID Cond: (ctid = '(1,1)'::tid)
3263 Filter: (ctid = '(1,1)'::tid)
3265 TID Cond: (ctid = '(1,1)'::tid)
3267 TID Cond: (ctid = '(1,1)'::tid)
3273 Join Filter: (t2.c1 = t1.c1)
3275 Join Filter: (t3.c1 = t2.c1)
3277 Join Filter: (t3.c1 = t4.c1)
3279 TID Cond: (ctid = '(1,1)'::tid)
3281 TID Cond: (ctid = '(1,1)'::tid)
3283 Filter: (ctid = '(1,1)'::tid)
3285 TID Cond: (ctid = '(1,1)'::tid)
3287 TID Cond: (ctid = '(1,1)'::tid)
3291 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3293 -----------------------------------------------------------------
3296 Join Filter: (b1t1.c1 = b1t4.c1)
3298 Join Filter: (b1t1.c1 = b1t3.c1)
3300 Join Filter: (b1t2.c1 = b1t1.c1)
3303 TID Cond: (ctid = '(1,1)'::tid)
3305 -> Seq Scan on t2 b1t2
3306 Filter: (ctid = '(1,1)'::tid)
3307 -> Tid Scan on t1 b1t1
3308 TID Cond: (ctid = '(1,1)'::tid)
3309 -> Tid Scan on t3 b1t3
3310 TID Cond: (ctid = '(1,1)'::tid)
3311 -> Tid Scan on t4 b1t4
3312 TID Cond: (ctid = '(1,1)'::tid)
3316 Join Filter: (b2t1.c1 = b2t4.c1)
3318 Join Filter: (b2t1.c1 = b2t3.c1)
3320 Join Filter: (b2t2.c1 = b2t1.c1)
3323 TID Cond: (ctid = '(1,1)'::tid)
3325 -> Seq Scan on t2 b2t2
3326 Filter: (ctid = '(1,1)'::tid)
3327 -> Tid Scan on t1 b2t1
3328 TID Cond: (ctid = '(1,1)'::tid)
3329 -> Tid Scan on t3 b2t3
3330 TID Cond: (ctid = '(1,1)'::tid)
3331 -> Tid Scan on t4 b2t4
3332 TID Cond: (ctid = '(1,1)'::tid)
3336 Join Filter: (b3t1.c1 = b3t4.c1)
3338 Join Filter: (b3t1.c1 = b3t3.c1)
3340 Join Filter: (b3t2.c1 = b3t1.c1)
3343 TID Cond: (ctid = '(1,1)'::tid)
3345 -> Seq Scan on t2 b3t2
3346 Filter: (ctid = '(1,1)'::tid)
3347 -> Tid Scan on t1 b3t1
3348 TID Cond: (ctid = '(1,1)'::tid)
3349 -> Tid Scan on t3 b3t3
3350 TID Cond: (ctid = '(1,1)'::tid)
3351 -> Tid Scan on t4 b3t4
3352 TID Cond: (ctid = '(1,1)'::tid)
3356 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3357 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3358 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3360 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3363 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3365 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3366 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3372 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3374 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3375 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3381 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3383 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3384 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3389 -----------------------------------------------------------------
3393 Join Filter: (b1t1.c1 = b1t4.c1)
3395 Join Filter: (b1t1.c1 = b1t3.c1)
3397 Join Filter: (b1t1.c1 = b1t2.c1)
3398 -> Tid Scan on t1 b1t1
3399 TID Cond: (ctid = '(1,1)'::tid)
3400 -> Seq Scan on t2 b1t2
3401 Filter: (ctid = '(1,1)'::tid)
3402 -> Tid Scan on t3 b1t3
3403 TID Cond: (ctid = '(1,1)'::tid)
3404 -> Tid Scan on t4 b1t4
3405 TID Cond: (ctid = '(1,1)'::tid)
3407 TID Cond: (ctid = '(1,1)'::tid)
3413 Join Filter: (b2t1.c1 = b2t4.c1)
3415 Join Filter: (b2t1.c1 = b2t3.c1)
3417 Join Filter: (b2t1.c1 = b2t2.c1)
3418 -> Tid Scan on t1 b2t1
3419 TID Cond: (ctid = '(1,1)'::tid)
3420 -> Seq Scan on t2 b2t2
3421 Filter: (ctid = '(1,1)'::tid)
3422 -> Tid Scan on t3 b2t3
3423 TID Cond: (ctid = '(1,1)'::tid)
3424 -> Tid Scan on t4 b2t4
3425 TID Cond: (ctid = '(1,1)'::tid)
3427 TID Cond: (ctid = '(1,1)'::tid)
3433 Join Filter: (b3t1.c1 = b3t4.c1)
3435 Join Filter: (b3t1.c1 = b3t3.c1)
3437 Join Filter: (b3t1.c1 = b3t2.c1)
3438 -> Tid Scan on t1 b3t1
3439 TID Cond: (ctid = '(1,1)'::tid)
3440 -> Seq Scan on t2 b3t2
3441 Filter: (ctid = '(1,1)'::tid)
3442 -> Tid Scan on t3 b3t3
3443 TID Cond: (ctid = '(1,1)'::tid)
3444 -> Tid Scan on t4 b3t4
3445 TID Cond: (ctid = '(1,1)'::tid)
3447 TID Cond: (ctid = '(1,1)'::tid)
3452 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3454 ----------------------------------
3456 Hash Cond: (v1t1.c1 = v1t1.c1)
3457 -> Seq Scan on t1 v1t1
3459 -> Seq Scan on t1 v1t1
3462 /*+Leading(v1t1 v1t1)*/
3463 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3464 INFO: hint syntax error at or near "Leading(v1t1 v1t1)"
3465 DETAIL: Relation name "v1t1" is ambiguous.
3474 ----------------------------------
3476 Hash Cond: (v1t1.c1 = v1t1.c1)
3477 -> Seq Scan on t1 v1t1
3479 -> Seq Scan on t1 v1t1
3483 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3485 -----------------------------------
3487 Hash Cond: (v1t1.c1 = v1t1_.c1)
3488 -> Seq Scan on t1 v1t1
3490 -> Seq Scan on t1 v1t1_
3493 /*+Leading(v1t1 v1t1_)*/
3494 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3503 -----------------------------------
3505 Hash Cond: (v1t1.c1 = v1t1_.c1)
3506 -> Seq Scan on t1 v1t1
3508 -> Seq Scan on t1 v1t1_
3512 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3514 ----------------------------------
3516 Hash Cond: (r4t1.c1 = r4t1.c1)
3517 -> Seq Scan on t1 r4t1
3519 -> Seq Scan on t1 r4t1
3522 /*+Leading(r4t1 r4t1)*/
3523 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3524 INFO: hint syntax error at or near "Leading(r4t1 r4t1)"
3525 DETAIL: Relation name "r4t1" is ambiguous.
3534 ----------------------------------
3536 Hash Cond: (r4t1.c1 = r4t1.c1)
3537 -> Seq Scan on t1 r4t1
3539 -> Seq Scan on t1 r4t1
3543 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3545 ----------------------------------
3547 Hash Cond: (r4t1.c1 = r5t1.c1)
3548 -> Seq Scan on t1 r4t1
3550 -> Seq Scan on t1 r5t1
3553 /*+Leading(r4t1 r5t1)*/
3554 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3563 ----------------------------------
3565 Hash Cond: (r4t1.c1 = r5t1.c1)
3566 -> Seq Scan on t1 r4t1
3568 -> Seq Scan on t1 r5t1
3572 ---- No. L-2-4 VALUES clause
3575 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;
3577 -------------------------------------------------------
3579 Merge Cond: (t1.c1 = t2.c1)
3580 -> Index Scan using t1_i1 on t1
3584 Hash Cond: (t2.c1 = "*VALUES*".column1)
3587 -> Values Scan on "*VALUES*"
3590 /*+ Leading(t3 t1 t2) */
3591 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;
3600 -------------------------------------------------------
3602 Merge Cond: (t1.c1 = t2.c1)
3603 -> Index Scan using t1_i1 on t1
3607 Hash Cond: (t2.c1 = "*VALUES*".column1)
3610 -> Values Scan on "*VALUES*"
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 -----------------------------------------------------------
3625 Hash Cond: (t2.c1 = t1.c1)
3629 -> Values Scan on "*VALUES*"
3630 -> Index Scan using t1_i1 on t1
3631 Index Cond: (c1 = "*VALUES*".column1)
3635 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;
3637 -------------------------------------------------------------
3639 Join Filter: (t1.c1 = "*VALUES*".column1)
3641 Merge Cond: (t1.c1 = t2.c1)
3642 -> Index Scan using t1_i1 on t1
3646 Hash Cond: (t2.c1 = "*VALUES*".column1)
3649 -> Values Scan on "*VALUES*"
3650 -> Values Scan on "*VALUES*"
3653 /*+ Leading(t4 t3 t2 t1) */
3654 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;
3658 Leading(t4 t3 t2 t1)
3663 -------------------------------------------------------------
3665 Join Filter: (t1.c1 = "*VALUES*".column1)
3667 Merge Cond: (t1.c1 = t2.c1)
3668 -> Index Scan using t1_i1 on t1
3672 Hash Cond: (t2.c1 = "*VALUES*".column1)
3675 -> Values Scan on "*VALUES*"
3676 -> Values Scan on "*VALUES*"
3679 /*+ Leading(*VALUES* t3 t2 t1) */
3680 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;
3681 INFO: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) "
3682 DETAIL: Relation name "*VALUES*" is ambiguous.
3688 Leading(*VALUES* t3 t2 t1)
3691 -------------------------------------------------------------
3693 Join Filter: (t1.c1 = "*VALUES*".column1)
3695 Merge Cond: (t1.c1 = t2.c1)
3696 -> Index Scan using t1_i1 on t1
3700 Hash Cond: (t2.c1 = "*VALUES*".column1)
3703 -> Values Scan on "*VALUES*"
3704 -> Values Scan on "*VALUES*"
3708 ---- No. L-3-1 leading the order of table joins
3710 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3712 ------------------------------------------
3714 Merge Cond: (t1.c1 = t2.c1)
3716 Merge Cond: (t1.c1 = t3.c1)
3717 -> Index Scan using t1_i1 on t1
3718 -> Index Scan using t3_i1 on t3
3725 /*+Leading(t3 t1 t2)*/
3726 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3735 ------------------------------------------
3737 Merge Cond: (t1.c1 = t2.c1)
3739 Merge Cond: (t1.c1 = t3.c1)
3740 -> Index Scan using t1_i1 on t1
3741 -> Index Scan using t3_i1 on t3
3748 /*+Leading(t1 t2 t3)*/
3749 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3758 ------------------------------------------------
3760 Hash Cond: (t3.c1 = t1.c1)
3764 Merge Cond: (t1.c1 = t2.c1)
3765 -> Index Scan using t1_i1 on t1
3772 ---- No. L-3-2 GUC parameter to disable hints
3774 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3776 ------------------------------------------
3778 Merge Cond: (t1.c1 = t2.c1)
3780 Merge Cond: (t1.c1 = t3.c1)
3781 -> Index Scan using t1_i1 on t1
3782 -> Index Scan using t3_i1 on t3
3789 Set geqo_threshold = 3;
3791 /*+Leading(t1 t2 t3)*/
3792 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3801 ------------------------------------------
3803 Merge Cond: (t1.c1 = t2.c1)
3805 Merge Cond: (t1.c1 = t3.c1)
3806 -> Index Scan using t1_i1 on t1
3807 -> Index Scan using t3_i1 on t3
3813 Reset geqo_threshold;
3815 Set geqo_threshold = 4;
3817 /*+Leading(t1 t2 t3)*/
3818 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3827 ------------------------------------------------
3829 Hash Cond: (t3.c1 = t1.c1)
3833 Merge Cond: (t1.c1 = t2.c1)
3834 -> Index Scan using t1_i1 on t1
3840 Reset geqo_threshold;
3842 Set from_collapse_limit = 2;
3843 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3845 -----------------------------------------------------
3847 Hash Cond: (t1.c1 = v2t1.c1)
3851 Merge Cond: (v2t1.c1 = v2t2.c1)
3852 -> Index Scan using t1_i1 on t1 v2t1
3855 -> Seq Scan on t2 v2t2
3858 /*+Leading(t1 v2t1 v2t2)*/
3859 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3862 Leading(t1 v2t1 v2t2)
3868 -----------------------------------------------------
3870 Hash Cond: (t1.c1 = v2t1.c1)
3874 Merge Cond: (v2t1.c1 = v2t2.c1)
3875 -> Index Scan using t1_i1 on t1 v2t1
3878 -> Seq Scan on t2 v2t2
3881 Reset from_collapse_limit;
3883 Set from_collapse_limit = 3;
3884 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3886 -----------------------------------------------
3888 Merge Cond: (v2t1.c1 = v2t2.c1)
3890 Merge Cond: (t1.c1 = v2t1.c1)
3891 -> Index Scan using t1_i1 on t1
3892 -> Index Scan using t1_i1 on t1 v2t1
3895 -> Seq Scan on t2 v2t2
3898 /*+Leading(v2t1 v2t2 t1)*/
3899 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3902 Leading(v2t1 v2t2 t1)
3908 -----------------------------------------------------
3910 Hash Cond: (t1.c1 = v2t1.c1)
3914 Merge Cond: (v2t1.c1 = v2t2.c1)
3915 -> Index Scan using t1_i1 on t1 v2t1
3918 -> Seq Scan on t2 v2t2
3921 Reset from_collapse_limit;
3923 Set join_collapse_limit = 2;
3924 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3925 JOIN s1.t2 ON (t3.c1 = t2.c1)
3926 JOIN s1.t1 ON (t1.c1 = t3.c1);
3928 ------------------------------------------
3930 Hash Cond: (t1.c1 = t3.c1)
3934 Hash Cond: (t3.c1 = t2.c1)
3940 /*+Leading(t1 t2 t3)*/
3941 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3942 JOIN s1.t2 ON (t3.c1 = t2.c1)
3943 JOIN s1.t1 ON (t1.c1 = t3.c1);
3952 ------------------------------------------
3954 Hash Cond: (t1.c1 = t3.c1)
3958 Hash Cond: (t3.c1 = t2.c1)
3964 Reset join_collapse_limit;
3966 Set join_collapse_limit = 3;
3967 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3968 JOIN s1.t2 ON (t3.c1 = t2.c1)
3969 JOIN s1.t1 ON (t1.c1 = t3.c1);
3971 ------------------------------------------------
3973 Hash Cond: (t3.c1 = t2.c1)
3977 Merge Cond: (t1.c1 = t2.c1)
3978 -> Index Scan using t1_i1 on t1
3984 /*+Leading(t1 t2 t3)*/
3985 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3986 JOIN s1.t2 ON (t3.c1 = t2.c1)
3987 JOIN s1.t1 ON (t1.c1 = t3.c1);
3996 ------------------------------------------------
3998 Hash Cond: (t3.c1 = t2.c1)
4002 Merge Cond: (t1.c1 = t2.c1)
4003 -> Index Scan using t1_i1 on t1
4009 Reset join_collapse_limit;
4011 ---- No. L-3-3 join between parents or between children
4014 /*+Leading(t1 t2 t3)*/
4015 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4016 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4017 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4026 -----------------------------------------------
4028 Hash Cond: (t1.c1 = t3.c1)
4030 Hash Cond: (t1.c1 = t2.c1)
4032 -> Seq Scan on p2c1 t1
4033 -> Seq Scan on p2c1c1 t1
4034 -> Seq Scan on p2c1c2 t1
4037 -> Seq Scan on p2c2 t2
4038 -> Seq Scan on p2c2c1 t2
4039 -> Seq Scan on p2c2c2 t2
4042 -> Seq Scan on p2c3 t3
4043 -> Seq Scan on p2c3c1 t3
4044 -> Seq Scan on p2c3c2 t3
4048 /*+Leading(p2c1c1 p2c2c1 p2c3c1)*/
4049 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4050 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4051 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4055 Leading(p2c1c1 p2c2c1 p2c3c1)
4060 -----------------------------------------------
4062 Hash Cond: (t1.c1 = t3.c1)
4064 Hash Cond: (t1.c1 = t2.c1)
4066 -> Seq Scan on p2c1 t1
4067 -> Seq Scan on p2c1c1 t1
4068 -> Seq Scan on p2c1c2 t1
4071 -> Seq Scan on p2c2 t2
4072 -> Seq Scan on p2c2c1 t2
4073 -> Seq Scan on p2c2c2 t2
4076 -> Seq Scan on p2c3 t3
4077 -> Seq Scan on p2c3c1 t3
4078 -> Seq Scan on p2c3c2 t3
4082 ---- No. L-3-4 conflict leading hint
4085 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4086 JOIN s1.t2 ON (t1.c1 = t2.c1)
4087 JOIN s1.t3 ON (t1.c1 = t3.c1);
4089 ------------------------------------------
4091 Merge Cond: (t1.c1 = t2.c1)
4093 Merge Cond: (t1.c1 = t3.c1)
4094 -> Index Scan using t1_i1 on t1
4095 -> Index Scan using t3_i1 on t3
4101 /*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4102 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4103 JOIN s1.t2 ON (t1.c1 = t2.c1)
4104 JOIN s1.t3 ON (t1.c1 = t3.c1);
4105 INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4106 DETAIL: Conflict leading hint.
4116 ------------------------------------------------
4118 Hash Cond: (t3.c1 = t1.c1)
4122 Merge Cond: (t1.c1 = t2.c1)
4123 -> Index Scan using t1_i1 on t1
4130 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4131 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4132 JOIN s1.t2 ON (t1.c1 = t2.c1)
4133 JOIN s1.t3 ON (t1.c1 = t3.c1);
4134 INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
4135 DETAIL: Conflict leading hint.
4136 INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4137 DETAIL: Conflict leading hint.
4148 ------------------------------------------------
4150 Hash Cond: (t3.c1 = t1.c1)
4154 Merge Cond: (t1.c1 = t2.c1)
4155 -> Index Scan using t1_i1 on t1
4162 /*+Leading(t2 t3 t1)Leading()*/
4163 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4164 JOIN s1.t2 ON (t1.c1 = t2.c1)
4165 JOIN s1.t3 ON (t1.c1 = t3.c1);
4166 INFO: hint syntax error at or near "Leading()"
4167 DETAIL: Leading hint requires at least two relations.
4177 ------------------------------------------
4179 Merge Cond: (t1.c1 = t2.c1)
4180 -> Index Scan using t1_i1 on t1
4184 Hash Cond: (t3.c1 = t2.c1)
4191 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
4192 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4193 JOIN s1.t2 ON (t1.c1 = t2.c1)
4194 JOIN s1.t3 ON (t1.c1 = t3.c1);
4195 INFO: hint syntax error at or near "Leading()"
4196 DETAIL: Leading hint requires at least two relations.
4197 INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
4198 DETAIL: Conflict leading hint.
4209 ------------------------------------------
4211 Merge Cond: (t1.c1 = t2.c1)
4212 -> Index Scan using t1_i1 on t1
4216 Hash Cond: (t3.c1 = t2.c1)
4223 ---- No. L-3-5 hint state output
4227 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4228 JOIN s1.t2 ON (t1.c1 = t2.c1)
4229 JOIN s1.t3 ON (t1.c1 = t3.c1);
4230 INFO: hint syntax error at or near "Leading()"
4231 DETAIL: Leading hint requires at least two relations.
4240 ------------------------------------------
4242 Merge Cond: (t1.c1 = t2.c1)
4244 Merge Cond: (t1.c1 = t3.c1)
4245 -> Index Scan using t1_i1 on t1
4246 -> Index Scan using t3_i1 on t3
4254 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4255 JOIN s1.t2 ON (t1.c1 = t2.c1)
4256 JOIN s1.t3 ON (t1.c1 = t3.c1);
4257 INFO: hint syntax error at or near "Leading(t1)"
4258 DETAIL: Leading hint requires at least two relations.
4267 ------------------------------------------
4269 Merge Cond: (t1.c1 = t2.c1)
4271 Merge Cond: (t1.c1 = t3.c1)
4272 -> Index Scan using t1_i1 on t1
4273 -> Index Scan using t3_i1 on t3
4281 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4282 JOIN s1.t2 ON (t1.c1 = t2.c1)
4283 JOIN s1.t3 ON (t1.c1 = t3.c1);
4292 ------------------------------------------
4295 Merge Cond: (t1.c1 = t2.c1)
4296 -> Index Scan using t1_i1 on t1
4300 -> Index Scan using t3_i1 on t3
4301 Index Cond: (c1 = t1.c1)
4305 /*+Leading(t1 t2 t3)*/
4306 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4307 JOIN s1.t2 ON (t1.c1 = t2.c1)
4308 JOIN s1.t3 ON (t1.c1 = t3.c1);
4317 ------------------------------------------------
4319 Hash Cond: (t3.c1 = t1.c1)
4323 Merge Cond: (t1.c1 = t2.c1)
4324 -> Index Scan using t1_i1 on t1
4331 ---- No. L-3-6 specified Inner/Outer side
4335 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;
4336 INFO: hint syntax error at or near "Leading((t2))"
4337 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4346 ------------------------------------------------
4348 Merge Cond: (t1.c1 = t2.c1)
4350 Merge Cond: (t1.c1 = t4.c1)
4352 Merge Cond: (t1.c1 = t3.c1)
4353 -> Index Scan using t1_i1 on t1
4354 -> Index Scan using t3_i1 on t3
4355 -> Index Scan using t4_i1 on t4
4362 /*+Leading((t2 t3))*/
4363 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;
4372 ------------------------------------------------
4376 Merge Cond: (t2.c1 = t3.c1)
4377 -> Index Scan using t2_i1 on t2
4378 -> Index Scan using t3_i1 on t3
4379 -> Index Scan using t1_i1 on t1
4380 Index Cond: (c1 = t2.c1)
4381 -> Index Scan using t4_i1 on t4
4382 Index Cond: (c1 = t1.c1)
4386 /*+Leading((t2 t3 t4))*/
4387 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;
4388 INFO: hint syntax error at or near "Leading((t2 t3 t4))"
4389 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4398 ------------------------------------------------
4400 Merge Cond: (t1.c1 = t2.c1)
4402 Merge Cond: (t1.c1 = t4.c1)
4404 Merge Cond: (t1.c1 = t3.c1)
4405 -> Index Scan using t1_i1 on t1
4406 -> Index Scan using t3_i1 on t3
4407 -> Index Scan using t4_i1 on t4
4414 /*+Leading(((t1 t2) (t3 t4)))*/
4415 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;
4418 Leading(((t1 t2) (t3 t4)))
4424 ------------------------------------------
4426 Hash Cond: (t1.c1 = t3.c1)
4428 Merge Cond: (t1.c1 = t2.c1)
4429 -> Index Scan using t1_i1 on t1
4435 Hash Cond: (t3.c1 = t4.c1)
4442 /*+Leading((((t1 t3) t4) t2)))*/
4443 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;
4444 INFO: hint syntax error at or near ")"
4445 DETAIL: Unrecognized hint keyword ")".
4448 Leading((((t1 t3) t4) t2))
4454 ------------------------------------------------
4456 Merge Cond: (t1.c1 = t2.c1)
4458 Merge Cond: (t1.c1 = t4.c1)
4460 Merge Cond: (t1.c1 = t3.c1)
4461 -> Index Scan using t1_i1 on t1
4462 -> Index Scan using t3_i1 on t3
4463 -> Index Scan using t4_i1 on t4
4470 /*+Leading((t1 (t3 (t4 t2))))*/
4471 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;
4474 Leading((t1 (t3 (t4 t2))))
4480 ------------------------------------------------------
4482 Merge Cond: (t1.c1 = t2.c1)
4483 -> Index Scan using t1_i1 on t1
4487 Hash Cond: (t3.c1 = t2.c1)
4491 Hash Cond: (t4.c1 = t2.c1)