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: (t1_1.c1 = t1.c1)
260 Merge Cond: (t1.c1 = t2.c1)
262 Merge Cond: (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
268 -> Seq Scan on t1 t1_1
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: (t1.c1 = t1_1.c1)
287 Merge Cond: (t1.c1 = t2.c1)
289 Merge Cond: (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
295 -> Seq Scan on t1 t1_1
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: (t1.c1 = t1_1.c1)
312 Merge Cond: (t1.c1 = t2.c1)
314 Merge Cond: (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
320 -> Seq Scan on t1 t1_1
323 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 s2t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2t1.c1;
325 ------------------------------------------------
327 Merge Cond: (t1.c1 = s2t1.c1)
329 Merge Cond: (t1.c1 = t2.c1)
331 Merge Cond: (t1.c1 = t3.c1)
332 -> Index Scan using t1_i1 on t1
333 -> Index Scan using t3_i1 on t3
334 -> Index Scan using t2_i1 on t2
337 -> Seq Scan on t1 s2t1
340 /*+Leading(s2t1 t1 t3 t2)*/
341 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 s2t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2t1.c1;
344 Leading(s2t1 t1 t3 t2)
350 -------------------------------------------------------
352 Merge Cond: (t1.c1 = t2.c1)
355 Merge Cond: (t1.c1 = s2t1.c1)
356 -> Index Scan using t1_i1 on t1
357 -> Index Scan using t1_pkey on t1 s2t1
358 -> Index Scan using t3_i1 on t3
359 Index Cond: (c1 = t1.c1)
366 EXPLAIN (COSTS false) SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
368 -------------------------------------------------------------------
370 Merge Cond: (t1.c1 = t2.c1)
371 InitPlan 1 (returns $0)
374 Merge Cond: (t1.c1 = t2.c1)
376 Merge Cond: (t1.c1 = t4.c1)
378 Merge Cond: (t1.c1 = t3.c1)
379 -> Index Only Scan using t1_i1 on t1
380 -> Index Only Scan using t3_i1 on t3
381 -> Index Only Scan using t4_i1 on t4
386 Merge Cond: (t1.c1 = t4.c1)
388 Merge Cond: (t1.c1 = 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: (t1.c1 = t2.c1)
410 InitPlan 1 (returns $0)
413 Merge Cond: (t1.c1 = t2.c1)
414 -> Index Only Scan using t1_i1 on t1
418 Hash Cond: (t3.c1 = t2.c1)
422 Hash Cond: (t4.c1 = t2.c1)
426 -> Index Scan using t1_i1 on t1
430 Hash Cond: (t3.c1 = t2.c1)
434 Hash Cond: (t4.c1 = 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_1
667 -> Seq Scan on p1c2 t1_2
668 -> Seq Scan on p1c3 t1_3
672 -> Seq Scan on p1c1 t2_1
673 -> Seq Scan on p1c2 t2_2
674 -> Seq Scan on p1c3 t2_3
678 -> Seq Scan on p1c1 t3_1
679 -> Seq Scan on p1c2 t3_2
680 -> Seq Scan on p1c3 t3_3
684 -> Seq Scan on p1c1 t4_1
685 -> Seq Scan on p1c2 t4_2
686 -> Seq Scan on p1c3 t4_3
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_1
709 -> Seq Scan on p1c2 t3_2
710 -> Seq Scan on p1c3 t3_3
714 -> Seq Scan on p1c1 t4_1
715 -> Seq Scan on p1c2 t4_2
716 -> Seq Scan on p1c3 t4_3
720 -> Seq Scan on p1c1 t2_1
721 -> Seq Scan on p1c2 t2_2
722 -> Seq Scan on p1c3 t2_3
726 -> Seq Scan on p1c1 t1_1
727 -> Seq Scan on p1c2 t1_2
728 -> Seq Scan on p1c3 t1_3
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 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;
780 --------------------------------------------
782 Hash Cond: (t1.c1 = t4.c1)
784 Hash Cond: (t1.c1 = t3.c1)
786 Hash Cond: (t1.c1 = t2.c1)
787 -> Seq Scan on tm1 t1
789 -> Seq Scan on tm1 t2
791 -> Seq Scan on tm1 t3
793 -> Seq Scan on tm1 t4
796 /*+Leading(t4 t3 t2 t1)*/
797 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;
806 --------------------------------------------
808 Hash Cond: (t2.c1 = t1.c1)
810 Hash Cond: (t3.c1 = t2.c1)
812 Hash Cond: (t3.c1 = t4.c1)
813 -> Seq Scan on tm1 t3
815 -> Seq Scan on tm1 t4
817 -> Seq Scan on tm1 t2
819 -> Seq Scan on tm1 t1
823 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;
825 -------------------------------------------------
827 Hash Cond: (t1.oid = t4.oid)
829 Hash Cond: (t1.oid = t3.oid)
831 Hash Cond: (t1.oid = t2.oid)
832 -> Seq Scan on pg_class t1
834 -> Seq Scan on pg_class t2
836 -> Seq Scan on pg_class t3
838 -> Seq Scan on pg_class t4
841 /*+Leading(t4 t3 t2 t1)*/
842 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;
851 -------------------------------------------------
853 Hash Cond: (t2.oid = t1.oid)
855 Hash Cond: (t3.oid = t2.oid)
857 Hash Cond: (t3.oid = t4.oid)
858 -> Seq Scan on pg_class t3
860 -> Seq Scan on pg_class t4
862 -> Seq Scan on pg_class t2
864 -> Seq Scan on pg_class t1
870 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;
872 --------------------------------------------
874 Join Filter: (t1.c1 = t4.c1)
876 Join Filter: (t1.c1 = t3.c1)
878 Join Filter: (t1.c1 = t2.c1)
879 -> Function Scan on f1 t1
880 -> Function Scan on f1 t2
881 -> Function Scan on f1 t3
882 -> Function Scan on f1 t4
885 /*+Leading(t4 t3 t2 t1)*/
886 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;
895 --------------------------------------------
897 Join Filter: (t2.c1 = t1.c1)
899 Join Filter: (t3.c1 = t2.c1)
901 Join Filter: (t3.c1 = t4.c1)
902 -> Function Scan on f1 t3
903 -> Function Scan on f1 t4
904 -> Function Scan on f1 t2
905 -> Function Scan on f1 t1
909 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;
911 -------------------------------------------------------
913 Join Filter: ("*VALUES*".column1 = t4.c1)
915 Join Filter: ("*VALUES*".column1 = t3.c1)
917 Hash Cond: (t2.c1 = "*VALUES*".column1)
920 -> Values Scan on "*VALUES*"
921 -> Index Scan using t3_i1 on t3
922 Index Cond: (c1 = t2.c1)
923 -> Index Scan using t4_i1 on t4
924 Index Cond: (c1 = t3.c1)
927 /*+Leading(t4 t3 t2 t1)*/
928 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;
937 -------------------------------------------------------
939 Join Filter: ("*VALUES*".column1 = t4.c1)
941 Join Filter: ("*VALUES*".column1 = t3.c1)
943 Hash Cond: (t2.c1 = "*VALUES*".column1)
946 -> Values Scan on "*VALUES*"
947 -> Index Scan using t3_i1 on t3
948 Index Cond: (c1 = t2.c1)
949 -> Index Scan using t4_i1 on t4
950 Index Cond: (c1 = t3.c1)
954 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;
956 ----------------------------------------------------
958 Merge Cond: (ct1.c1 = ct3.c1)
961 Hash Cond: (st1.c1 = st4.c1)
963 Hash Cond: (st1.c1 = st3.c1)
965 Hash Cond: (st1.c1 = st2.c1)
966 -> Seq Scan on t1 st1
968 -> Seq Scan on t1 st2
970 -> Seq Scan on t1 st3
972 -> Seq Scan on t1 st4
974 Merge Cond: (ct1.c1 = ct2.c1)
977 -> CTE Scan on c1 ct1
980 -> CTE Scan on c1 ct2
983 Merge Cond: (ct3.c1 = ct4.c1)
986 -> CTE Scan on c1 ct3
989 -> CTE Scan on c1 ct4
992 /*+Leading(ct4 ct3 ct2 ct1)Leading(st4 st3 st2 st1)*/
993 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;
996 Leading(ct4 ct3 ct2 ct1)
997 Leading(st4 st3 st2 st1)
1003 ---------------------------------------------------------
1005 Merge Cond: (ct1.c1 = ct2.c1)
1008 Hash Cond: (st2.c1 = st1.c1)
1010 Hash Cond: (st3.c1 = st2.c1)
1012 Hash Cond: (st3.c1 = st4.c1)
1013 -> Seq Scan on t1 st3
1015 -> Seq Scan on t1 st4
1017 -> Seq Scan on t1 st2
1019 -> Seq Scan on t1 st1
1022 -> CTE Scan on c1 ct1
1025 Merge Cond: (ct2.c1 = ct3.c1)
1028 -> CTE Scan on c1 ct2
1031 Merge Cond: (ct3.c1 = ct4.c1)
1034 -> CTE Scan on c1 ct3
1037 -> CTE Scan on c1 ct4
1041 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;
1043 ------------------------------------------------
1045 Hash Cond: (v1t1.c1 = v1t1_3.c1)
1047 Hash Cond: (v1t1.c1 = v1t1_2.c1)
1049 Hash Cond: (v1t1.c1 = v1t1_1.c1)
1050 -> Seq Scan on t1 v1t1
1052 -> Seq Scan on t1 v1t1_1
1054 -> Seq Scan on t1 v1t1_2
1056 -> Seq Scan on t1 v1t1_3
1059 /*+Leading(t4 t3 t2 t1)*/
1060 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;
1064 Leading(t4 t3 t2 t1)
1069 ------------------------------------------------
1071 Hash Cond: (v1t1.c1 = v1t1_3.c1)
1073 Hash Cond: (v1t1.c1 = v1t1_2.c1)
1075 Hash Cond: (v1t1.c1 = v1t1_1.c1)
1076 -> Seq Scan on t1 v1t1
1078 -> Seq Scan on t1 v1t1_1
1080 -> Seq Scan on t1 v1t1_2
1082 -> Seq Scan on t1 v1t1_3
1085 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;
1087 ---------------------------------------------
1089 Hash Cond: (v1t1.c1 = t4.c1)
1091 Hash Cond: (v1t1.c1 = v1t1_.c1)
1093 Hash Cond: (t3.c1 = v1t1.c1)
1096 -> Seq Scan on t1 v1t1
1098 -> Seq Scan on t1 v1t1_
1103 /*+Leading(t4 v1t1_ v1t1 t3)*/
1104 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;
1107 Leading(t4 v1t1_ v1t1 t3)
1113 ----------------------------------------------
1115 Hash Cond: (v1t1.c1 = t3.c1)
1117 Hash Cond: (v1t1_.c1 = v1t1.c1)
1119 Hash Cond: (t4.c1 = v1t1_.c1)
1122 -> Seq Scan on t1 v1t1_
1124 -> Seq Scan on t1 v1t1
1130 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;
1132 ------------------------------------------------
1134 Merge Cond: (t1.c1 = t2.c1)
1136 Merge Cond: (t1.c1 = t4.c1)
1138 Merge Cond: (t1.c1 = t3.c1)
1139 -> Index Scan using t1_i1 on t1
1140 -> Index Scan using t3_i1 on t3
1141 -> Index Only Scan using t4_i1 on t4
1147 /*+Leading(st4 t2 t3 t1)*/
1148 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;
1152 Leading(st4 t2 t3 t1)
1157 ------------------------------------------------
1159 Merge Cond: (t1.c1 = t2.c1)
1161 Merge Cond: (t1.c1 = t4.c1)
1163 Merge Cond: (t1.c1 = t3.c1)
1164 -> Index Scan using t1_i1 on t1
1165 -> Index Scan using t3_i1 on t3
1166 -> Index Only Scan using t4_i1 on t4
1172 /*+Leading(t4 t2 t3 t1)*/
1173 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;
1176 Leading(t4 t2 t3 t1)
1182 ------------------------------------------------------
1184 Merge Cond: (t1.c1 = t2.c1)
1185 -> Index Scan using t1_i1 on t1
1189 Hash Cond: (t3.c1 = t2.c1)
1193 Hash Cond: (t4.c1 = t2.c1)
1200 ---- No. L-2-1 some complexity query blocks
1203 EXPLAIN (COSTS false)
1204 SELECT max(bmt1.c1), (
1205 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)'
1207 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)'
1209 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)'
1212 -------------------------------------------------------------------
1214 InitPlan 1 (returns $0)
1217 Join Filter: (b1t1.c1 = b1t4.c1)
1219 Join Filter: (b1t1.c1 = b1t3.c1)
1221 Join Filter: (b1t1.c1 = b1t2.c1)
1222 -> Tid Scan on t1 b1t1
1223 TID Cond: (ctid = '(1,1)'::tid)
1224 -> Seq Scan on t2 b1t2
1225 Filter: (ctid = '(1,1)'::tid)
1226 -> Tid Scan on t3 b1t3
1227 TID Cond: (ctid = '(1,1)'::tid)
1228 -> Tid Scan on t4 b1t4
1229 TID Cond: (ctid = '(1,1)'::tid)
1230 InitPlan 2 (returns $1)
1233 Join Filter: (b2t1.c1 = b2t4.c1)
1235 Join Filter: (b2t1.c1 = b2t3.c1)
1237 Join Filter: (b2t1.c1 = b2t2.c1)
1238 -> Tid Scan on t1 b2t1
1239 TID Cond: (ctid = '(1,1)'::tid)
1240 -> Seq Scan on t2 b2t2
1241 Filter: (ctid = '(1,1)'::tid)
1242 -> Tid Scan on t3 b2t3
1243 TID Cond: (ctid = '(1,1)'::tid)
1244 -> Tid Scan on t4 b2t4
1245 TID Cond: (ctid = '(1,1)'::tid)
1247 Join Filter: (bmt1.c1 = bmt4.c1)
1249 Join Filter: (bmt1.c1 = bmt3.c1)
1251 Join Filter: (bmt1.c1 = bmt2.c1)
1252 -> Tid Scan on t1 bmt1
1253 TID Cond: (ctid = '(1,1)'::tid)
1254 -> Seq Scan on t2 bmt2
1255 Filter: (ctid = '(1,1)'::tid)
1256 -> Tid Scan on t3 bmt3
1257 TID Cond: (ctid = '(1,1)'::tid)
1258 -> Tid Scan on t4 bmt4
1259 TID Cond: (ctid = '(1,1)'::tid)
1263 Leading(bmt1 bmt2 bmt3 bmt4)
1264 Leading(b1t2 b1t3 b1t4 b1t1)
1265 Leading(b2t3 b2t4 b2t1 b2t2)
1267 EXPLAIN (COSTS false)
1268 SELECT max(bmt1.c1), (
1269 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)'
1271 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)'
1273 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)'
1277 Leading(bmt1 bmt2 bmt3 bmt4)
1278 Leading(b1t2 b1t3 b1t4 b1t1)
1279 Leading(b2t3 b2t4 b2t1 b2t2)
1285 -------------------------------------------------------------------
1287 InitPlan 1 (returns $0)
1290 Join Filter: (b1t2.c1 = b1t1.c1)
1292 Join Filter: (b1t2.c1 = b1t4.c1)
1294 Join Filter: (b1t2.c1 = b1t3.c1)
1295 -> Seq Scan on t2 b1t2
1296 Filter: (ctid = '(1,1)'::tid)
1297 -> Tid Scan on t3 b1t3
1298 TID Cond: (ctid = '(1,1)'::tid)
1299 -> Tid Scan on t4 b1t4
1300 TID Cond: (ctid = '(1,1)'::tid)
1301 -> Tid Scan on t1 b1t1
1302 TID Cond: (ctid = '(1,1)'::tid)
1303 InitPlan 2 (returns $1)
1306 Join Filter: (b2t1.c1 = b2t2.c1)
1308 Join Filter: (b2t3.c1 = b2t1.c1)
1310 Join Filter: (b2t3.c1 = b2t4.c1)
1311 -> Tid Scan on t3 b2t3
1312 TID Cond: (ctid = '(1,1)'::tid)
1313 -> Tid Scan on t4 b2t4
1314 TID Cond: (ctid = '(1,1)'::tid)
1315 -> Tid Scan on t1 b2t1
1316 TID Cond: (ctid = '(1,1)'::tid)
1317 -> Seq Scan on t2 b2t2
1318 Filter: (ctid = '(1,1)'::tid)
1320 Join Filter: (bmt1.c1 = bmt4.c1)
1322 Join Filter: (bmt1.c1 = bmt3.c1)
1324 Join Filter: (bmt1.c1 = bmt2.c1)
1325 -> Tid Scan on t1 bmt1
1326 TID Cond: (ctid = '(1,1)'::tid)
1327 -> Seq Scan on t2 bmt2
1328 Filter: (ctid = '(1,1)'::tid)
1329 -> Tid Scan on t3 bmt3
1330 TID Cond: (ctid = '(1,1)'::tid)
1331 -> Tid Scan on t4 bmt4
1332 TID Cond: (ctid = '(1,1)'::tid)
1336 EXPLAIN (COSTS false)
1337 SELECT max(bmt1.c1), (
1338 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)'
1340 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)'
1342 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)'
1344 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)'
1347 -------------------------------------------------------------------
1349 InitPlan 1 (returns $0)
1352 Join Filter: (b1t1.c1 = b1t4.c1)
1354 Join Filter: (b1t1.c1 = b1t3.c1)
1356 Join Filter: (b1t1.c1 = b1t2.c1)
1357 -> Tid Scan on t1 b1t1
1358 TID Cond: (ctid = '(1,1)'::tid)
1359 -> Seq Scan on t2 b1t2
1360 Filter: (ctid = '(1,1)'::tid)
1361 -> Tid Scan on t3 b1t3
1362 TID Cond: (ctid = '(1,1)'::tid)
1363 -> Tid Scan on t4 b1t4
1364 TID Cond: (ctid = '(1,1)'::tid)
1365 InitPlan 2 (returns $1)
1368 Join Filter: (b2t1.c1 = b2t4.c1)
1370 Join Filter: (b2t1.c1 = b2t3.c1)
1372 Join Filter: (b2t1.c1 = b2t2.c1)
1373 -> Tid Scan on t1 b2t1
1374 TID Cond: (ctid = '(1,1)'::tid)
1375 -> Seq Scan on t2 b2t2
1376 Filter: (ctid = '(1,1)'::tid)
1377 -> Tid Scan on t3 b2t3
1378 TID Cond: (ctid = '(1,1)'::tid)
1379 -> Tid Scan on t4 b2t4
1380 TID Cond: (ctid = '(1,1)'::tid)
1381 InitPlan 3 (returns $2)
1384 Join Filter: (b3t1.c1 = b3t4.c1)
1386 Join Filter: (b3t1.c1 = b3t3.c1)
1388 Join Filter: (b3t1.c1 = b3t2.c1)
1389 -> Tid Scan on t1 b3t1
1390 TID Cond: (ctid = '(1,1)'::tid)
1391 -> Seq Scan on t2 b3t2
1392 Filter: (ctid = '(1,1)'::tid)
1393 -> Tid Scan on t3 b3t3
1394 TID Cond: (ctid = '(1,1)'::tid)
1395 -> Tid Scan on t4 b3t4
1396 TID Cond: (ctid = '(1,1)'::tid)
1398 Join Filter: (bmt1.c1 = bmt4.c1)
1400 Join Filter: (bmt1.c1 = bmt3.c1)
1402 Join Filter: (bmt1.c1 = bmt2.c1)
1403 -> Tid Scan on t1 bmt1
1404 TID Cond: (ctid = '(1,1)'::tid)
1405 -> Seq Scan on t2 bmt2
1406 Filter: (ctid = '(1,1)'::tid)
1407 -> Tid Scan on t3 bmt3
1408 TID Cond: (ctid = '(1,1)'::tid)
1409 -> Tid Scan on t4 bmt4
1410 TID Cond: (ctid = '(1,1)'::tid)
1414 Leading(bmt1 bmt2 bmt3 bmt4)
1415 Leading(b1t2 b1t3 b1t4 b1t1)
1416 Leading(b2t3 b2t4 b2t1 b2t2)
1417 Leading(b3t4 b3t1 b3t2 b3t3)
1419 EXPLAIN (COSTS false)
1420 SELECT max(bmt1.c1), (
1421 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)'
1423 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)'
1425 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)'
1427 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)'
1431 Leading(bmt1 bmt2 bmt3 bmt4)
1432 Leading(b1t2 b1t3 b1t4 b1t1)
1433 Leading(b2t3 b2t4 b2t1 b2t2)
1434 Leading(b3t4 b3t1 b3t2 b3t3)
1440 -------------------------------------------------------------------
1442 InitPlan 1 (returns $0)
1445 Join Filter: (b1t2.c1 = b1t1.c1)
1447 Join Filter: (b1t2.c1 = b1t4.c1)
1449 Join Filter: (b1t2.c1 = b1t3.c1)
1450 -> Seq Scan on t2 b1t2
1451 Filter: (ctid = '(1,1)'::tid)
1452 -> Tid Scan on t3 b1t3
1453 TID Cond: (ctid = '(1,1)'::tid)
1454 -> Tid Scan on t4 b1t4
1455 TID Cond: (ctid = '(1,1)'::tid)
1456 -> Tid Scan on t1 b1t1
1457 TID Cond: (ctid = '(1,1)'::tid)
1458 InitPlan 2 (returns $1)
1461 Join Filter: (b2t1.c1 = b2t2.c1)
1463 Join Filter: (b2t3.c1 = b2t1.c1)
1465 Join Filter: (b2t3.c1 = b2t4.c1)
1466 -> Tid Scan on t3 b2t3
1467 TID Cond: (ctid = '(1,1)'::tid)
1468 -> Tid Scan on t4 b2t4
1469 TID Cond: (ctid = '(1,1)'::tid)
1470 -> Tid Scan on t1 b2t1
1471 TID Cond: (ctid = '(1,1)'::tid)
1472 -> Seq Scan on t2 b2t2
1473 Filter: (ctid = '(1,1)'::tid)
1474 InitPlan 3 (returns $2)
1477 Join Filter: (b3t1.c1 = b3t3.c1)
1479 Join Filter: (b3t1.c1 = b3t2.c1)
1481 Join Filter: (b3t1.c1 = b3t4.c1)
1482 -> Tid Scan on t1 b3t1
1483 TID Cond: (ctid = '(1,1)'::tid)
1484 -> Tid Scan on t4 b3t4
1485 TID Cond: (ctid = '(1,1)'::tid)
1486 -> Seq Scan on t2 b3t2
1487 Filter: (ctid = '(1,1)'::tid)
1488 -> Tid Scan on t3 b3t3
1489 TID Cond: (ctid = '(1,1)'::tid)
1491 Join Filter: (bmt1.c1 = bmt4.c1)
1493 Join Filter: (bmt1.c1 = bmt3.c1)
1495 Join Filter: (bmt1.c1 = bmt2.c1)
1496 -> Tid Scan on t1 bmt1
1497 TID Cond: (ctid = '(1,1)'::tid)
1498 -> Seq Scan on t2 bmt2
1499 Filter: (ctid = '(1,1)'::tid)
1500 -> Tid Scan on t3 bmt3
1501 TID Cond: (ctid = '(1,1)'::tid)
1502 -> Tid Scan on t4 bmt4
1503 TID Cond: (ctid = '(1,1)'::tid)
1507 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)';
1509 -----------------------------------------------------------
1512 Join Filter: (bmt1.c1 = bmt4.c1)
1514 Join Filter: (bmt1.c1 = bmt3.c1)
1516 Join Filter: (bmt1.c1 = bmt2.c1)
1517 -> Tid Scan on t1 bmt1
1518 TID Cond: (ctid = '(1,1)'::tid)
1519 -> Seq Scan on t2 bmt2
1520 Filter: (ctid = '(1,1)'::tid)
1521 -> Tid Scan on t3 bmt3
1522 TID Cond: (ctid = '(1,1)'::tid)
1523 -> Tid Scan on t4 bmt4
1524 TID Cond: (ctid = '(1,1)'::tid)
1528 Leading(bmt4 bmt3 bmt2 bmt1)
1530 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)';
1533 Leading(bmt4 bmt3 bmt2 bmt1)
1539 -----------------------------------------------------------
1542 Join Filter: (bmt2.c1 = bmt1.c1)
1544 Join Filter: (bmt3.c1 = bmt2.c1)
1546 Join Filter: (bmt3.c1 = bmt4.c1)
1547 -> Tid Scan on t3 bmt3
1548 TID Cond: (ctid = '(1,1)'::tid)
1549 -> Tid Scan on t4 bmt4
1550 TID Cond: (ctid = '(1,1)'::tid)
1551 -> Seq Scan on t2 bmt2
1552 Filter: (ctid = '(1,1)'::tid)
1553 -> Tid Scan on t1 bmt1
1554 TID Cond: (ctid = '(1,1)'::tid)
1558 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)';
1560 -----------------------------------------------------------
1563 Join Filter: (bmt1.c1 = bmt4.c1)
1565 Join Filter: (bmt1.c1 = bmt3.c1)
1567 Join Filter: (bmt1.c1 = bmt2.c1)
1568 -> Tid Scan on t1 bmt1
1569 TID Cond: (ctid = '(1,1)'::tid)
1570 -> Seq Scan on t2 bmt2
1571 Filter: (ctid = '(1,1)'::tid)
1572 -> Tid Scan on t3 bmt3
1573 TID Cond: (ctid = '(1,1)'::tid)
1574 -> Tid Scan on t4 bmt4
1575 TID Cond: (ctid = '(1,1)'::tid)
1579 Leading(bmt4 bmt3 bmt2 bmt1)
1581 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)';
1584 Leading(bmt4 bmt3 bmt2 bmt1)
1590 -----------------------------------------------------------
1593 Join Filter: (bmt2.c1 = bmt1.c1)
1595 Join Filter: (bmt3.c1 = bmt2.c1)
1597 Join Filter: (bmt3.c1 = bmt4.c1)
1598 -> Tid Scan on t3 bmt3
1599 TID Cond: (ctid = '(1,1)'::tid)
1600 -> Tid Scan on t4 bmt4
1601 TID Cond: (ctid = '(1,1)'::tid)
1602 -> Seq Scan on t2 bmt2
1603 Filter: (ctid = '(1,1)'::tid)
1604 -> Tid Scan on t1 bmt1
1605 TID Cond: (ctid = '(1,1)'::tid)
1609 EXPLAIN (COSTS false)
1610 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)'
1612 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)'
1614 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)'
1618 -------------------------------------------------------------------
1620 InitPlan 1 (returns $0)
1623 Join Filter: (b1t1.c1 = b1t4.c1)
1625 Join Filter: (b1t1.c1 = b1t3.c1)
1627 Join Filter: (b1t1.c1 = b1t2.c1)
1628 -> Tid Scan on t1 b1t1
1629 TID Cond: (ctid = '(1,1)'::tid)
1630 -> Seq Scan on t2 b1t2
1631 Filter: (ctid = '(1,1)'::tid)
1632 -> Tid Scan on t3 b1t3
1633 TID Cond: (ctid = '(1,1)'::tid)
1634 -> Tid Scan on t4 b1t4
1635 TID Cond: (ctid = '(1,1)'::tid)
1636 InitPlan 2 (returns $1)
1639 Join Filter: (b2t1.c1 = b2t4.c1)
1641 Join Filter: (b2t1.c1 = b2t3.c1)
1643 Join Filter: (b2t1.c1 = b2t2.c1)
1644 -> Tid Scan on t1 b2t1
1645 TID Cond: (ctid = '(1,1)'::tid)
1646 -> Seq Scan on t2 b2t2
1647 Filter: (ctid = '(1,1)'::tid)
1648 -> Tid Scan on t3 b2t3
1649 TID Cond: (ctid = '(1,1)'::tid)
1650 -> Tid Scan on t4 b2t4
1651 TID Cond: (ctid = '(1,1)'::tid)
1653 Join Filter: (bmt1.c1 = bmt4.c1)
1655 Join Filter: (bmt1.c1 = bmt3.c1)
1657 Join Filter: (bmt1.c1 = bmt2.c1)
1658 -> Tid Scan on t1 bmt1
1659 TID Cond: (ctid = '(1,1)'::tid)
1660 Filter: ((c1 <> $0) AND (c1 <> $1))
1661 -> Seq Scan on t2 bmt2
1662 Filter: (ctid = '(1,1)'::tid)
1663 -> Tid Scan on t3 bmt3
1664 TID Cond: (ctid = '(1,1)'::tid)
1665 -> Tid Scan on t4 bmt4
1666 TID Cond: (ctid = '(1,1)'::tid)
1670 Leading(bmt1 bmt2 bmt3 bmt4)
1671 Leading(b1t2 b1t3 b1t4 b1t1)
1672 Leading(b2t3 b2t4 b2t1 b2t2)
1674 EXPLAIN (COSTS false)
1675 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)'
1677 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)'
1679 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)'
1684 Leading(bmt1 bmt2 bmt3 bmt4)
1685 Leading(b1t2 b1t3 b1t4 b1t1)
1686 Leading(b2t3 b2t4 b2t1 b2t2)
1692 -------------------------------------------------------------------
1694 InitPlan 1 (returns $0)
1697 Join Filter: (b1t2.c1 = b1t1.c1)
1699 Join Filter: (b1t2.c1 = b1t4.c1)
1701 Join Filter: (b1t2.c1 = b1t3.c1)
1702 -> Seq Scan on t2 b1t2
1703 Filter: (ctid = '(1,1)'::tid)
1704 -> Tid Scan on t3 b1t3
1705 TID Cond: (ctid = '(1,1)'::tid)
1706 -> Tid Scan on t4 b1t4
1707 TID Cond: (ctid = '(1,1)'::tid)
1708 -> Tid Scan on t1 b1t1
1709 TID Cond: (ctid = '(1,1)'::tid)
1710 InitPlan 2 (returns $1)
1713 Join Filter: (b2t1.c1 = b2t2.c1)
1715 Join Filter: (b2t3.c1 = b2t1.c1)
1717 Join Filter: (b2t3.c1 = b2t4.c1)
1718 -> Tid Scan on t3 b2t3
1719 TID Cond: (ctid = '(1,1)'::tid)
1720 -> Tid Scan on t4 b2t4
1721 TID Cond: (ctid = '(1,1)'::tid)
1722 -> Tid Scan on t1 b2t1
1723 TID Cond: (ctid = '(1,1)'::tid)
1724 -> Seq Scan on t2 b2t2
1725 Filter: (ctid = '(1,1)'::tid)
1727 Join Filter: (bmt1.c1 = bmt4.c1)
1729 Join Filter: (bmt1.c1 = bmt3.c1)
1731 Join Filter: (bmt1.c1 = bmt2.c1)
1732 -> Tid Scan on t1 bmt1
1733 TID Cond: (ctid = '(1,1)'::tid)
1734 Filter: ((c1 <> $0) AND (c1 <> $1))
1735 -> Seq Scan on t2 bmt2
1736 Filter: (ctid = '(1,1)'::tid)
1737 -> Tid Scan on t3 bmt3
1738 TID Cond: (ctid = '(1,1)'::tid)
1739 -> Tid Scan on t4 bmt4
1740 TID Cond: (ctid = '(1,1)'::tid)
1744 EXPLAIN (COSTS false)
1745 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)'
1747 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)'
1749 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)'
1751 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)'
1755 ------------------------------------------------------------------------------
1757 InitPlan 1 (returns $0)
1760 Join Filter: (b1t1.c1 = b1t4.c1)
1762 Join Filter: (b1t1.c1 = b1t3.c1)
1764 Join Filter: (b1t1.c1 = b1t2.c1)
1765 -> Tid Scan on t1 b1t1
1766 TID Cond: (ctid = '(1,1)'::tid)
1767 -> Seq Scan on t2 b1t2
1768 Filter: (ctid = '(1,1)'::tid)
1769 -> Tid Scan on t3 b1t3
1770 TID Cond: (ctid = '(1,1)'::tid)
1771 -> Tid Scan on t4 b1t4
1772 TID Cond: (ctid = '(1,1)'::tid)
1773 InitPlan 2 (returns $1)
1776 Join Filter: (b2t1.c1 = b2t4.c1)
1778 Join Filter: (b2t1.c1 = b2t3.c1)
1780 Join Filter: (b2t1.c1 = b2t2.c1)
1781 -> Tid Scan on t1 b2t1
1782 TID Cond: (ctid = '(1,1)'::tid)
1783 -> Seq Scan on t2 b2t2
1784 Filter: (ctid = '(1,1)'::tid)
1785 -> Tid Scan on t3 b2t3
1786 TID Cond: (ctid = '(1,1)'::tid)
1787 -> Tid Scan on t4 b2t4
1788 TID Cond: (ctid = '(1,1)'::tid)
1789 InitPlan 3 (returns $2)
1792 Join Filter: (b3t1.c1 = b3t4.c1)
1794 Join Filter: (b3t1.c1 = b3t3.c1)
1796 Join Filter: (b3t1.c1 = b3t2.c1)
1797 -> Tid Scan on t1 b3t1
1798 TID Cond: (ctid = '(1,1)'::tid)
1799 -> Seq Scan on t2 b3t2
1800 Filter: (ctid = '(1,1)'::tid)
1801 -> Tid Scan on t3 b3t3
1802 TID Cond: (ctid = '(1,1)'::tid)
1803 -> Tid Scan on t4 b3t4
1804 TID Cond: (ctid = '(1,1)'::tid)
1806 Join Filter: (bmt1.c1 = bmt4.c1)
1808 Join Filter: (bmt1.c1 = bmt3.c1)
1810 Join Filter: (bmt1.c1 = bmt2.c1)
1811 -> Tid Scan on t1 bmt1
1812 TID Cond: (ctid = '(1,1)'::tid)
1813 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1814 -> Seq Scan on t2 bmt2
1815 Filter: (ctid = '(1,1)'::tid)
1816 -> Tid Scan on t3 bmt3
1817 TID Cond: (ctid = '(1,1)'::tid)
1818 -> Tid Scan on t4 bmt4
1819 TID Cond: (ctid = '(1,1)'::tid)
1823 Leading(bmt1 bmt2 bmt3 bmt4)
1824 Leading(b1t2 b1t3 b1t4 b1t1)
1825 Leading(b2t3 b2t4 b2t1 b2t2)
1826 Leading(b3t4 b3t1 b3t2 b3t3)
1828 EXPLAIN (COSTS false)
1829 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)'
1831 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)'
1833 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)'
1835 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)'
1840 Leading(bmt1 bmt2 bmt3 bmt4)
1841 Leading(b1t2 b1t3 b1t4 b1t1)
1842 Leading(b2t3 b2t4 b2t1 b2t2)
1843 Leading(b3t4 b3t1 b3t2 b3t3)
1849 ------------------------------------------------------------------------------
1851 InitPlan 1 (returns $0)
1854 Join Filter: (b1t2.c1 = b1t1.c1)
1856 Join Filter: (b1t2.c1 = b1t4.c1)
1858 Join Filter: (b1t2.c1 = b1t3.c1)
1859 -> Seq Scan on t2 b1t2
1860 Filter: (ctid = '(1,1)'::tid)
1861 -> Tid Scan on t3 b1t3
1862 TID Cond: (ctid = '(1,1)'::tid)
1863 -> Tid Scan on t4 b1t4
1864 TID Cond: (ctid = '(1,1)'::tid)
1865 -> Tid Scan on t1 b1t1
1866 TID Cond: (ctid = '(1,1)'::tid)
1867 InitPlan 2 (returns $1)
1870 Join Filter: (b2t1.c1 = b2t2.c1)
1872 Join Filter: (b2t3.c1 = b2t1.c1)
1874 Join Filter: (b2t3.c1 = b2t4.c1)
1875 -> Tid Scan on t3 b2t3
1876 TID Cond: (ctid = '(1,1)'::tid)
1877 -> Tid Scan on t4 b2t4
1878 TID Cond: (ctid = '(1,1)'::tid)
1879 -> Tid Scan on t1 b2t1
1880 TID Cond: (ctid = '(1,1)'::tid)
1881 -> Seq Scan on t2 b2t2
1882 Filter: (ctid = '(1,1)'::tid)
1883 InitPlan 3 (returns $2)
1886 Join Filter: (b3t1.c1 = b3t3.c1)
1888 Join Filter: (b3t1.c1 = b3t2.c1)
1890 Join Filter: (b3t1.c1 = b3t4.c1)
1891 -> Tid Scan on t1 b3t1
1892 TID Cond: (ctid = '(1,1)'::tid)
1893 -> Tid Scan on t4 b3t4
1894 TID Cond: (ctid = '(1,1)'::tid)
1895 -> Seq Scan on t2 b3t2
1896 Filter: (ctid = '(1,1)'::tid)
1897 -> Tid Scan on t3 b3t3
1898 TID Cond: (ctid = '(1,1)'::tid)
1900 Join Filter: (bmt1.c1 = bmt4.c1)
1902 Join Filter: (bmt1.c1 = bmt3.c1)
1904 Join Filter: (bmt1.c1 = bmt2.c1)
1905 -> Tid Scan on t1 bmt1
1906 TID Cond: (ctid = '(1,1)'::tid)
1907 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1908 -> Seq Scan on t2 bmt2
1909 Filter: (ctid = '(1,1)'::tid)
1910 -> Tid Scan on t3 bmt3
1911 TID Cond: (ctid = '(1,1)'::tid)
1912 -> Tid Scan on t4 bmt4
1913 TID Cond: (ctid = '(1,1)'::tid)
1917 EXPLAIN (COSTS false)
1919 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)'
1922 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1924 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1926 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)'
1931 -----------------------------------------------------------------------
1936 Join Filter: (b1t1.c1 = b1t4.c1)
1938 Join Filter: (b1t1.c1 = b1t3.c1)
1940 Join Filter: (b1t1.c1 = b1t2.c1)
1941 -> Tid Scan on t1 b1t1
1942 TID Cond: (ctid = '(1,1)'::tid)
1943 -> Seq Scan on t2 b1t2
1944 Filter: (ctid = '(1,1)'::tid)
1945 -> Tid Scan on t3 b1t3
1946 TID Cond: (ctid = '(1,1)'::tid)
1947 -> Tid Scan on t4 b1t4
1948 TID Cond: (ctid = '(1,1)'::tid)
1952 Join Filter: (b2t1.c1 = b2t4.c1)
1954 Join Filter: (b2t1.c1 = b2t3.c1)
1956 Join Filter: (b2t1.c1 = b2t2.c1)
1957 -> Tid Scan on t1 b2t1
1958 TID Cond: (ctid = '(1,1)'::tid)
1959 -> Seq Scan on t2 b2t2
1960 Filter: (ctid = '(1,1)'::tid)
1961 -> Tid Scan on t3 b2t3
1962 TID Cond: (ctid = '(1,1)'::tid)
1963 -> Tid Scan on t4 b2t4
1964 TID Cond: (ctid = '(1,1)'::tid)
1966 Join Filter: (bmt1.c1 = c2.c1)
1968 Join Filter: (bmt1.c1 = c1.c1)
1970 Join Filter: (bmt1.c1 = bmt4.c1)
1972 Join Filter: (bmt1.c1 = bmt3.c1)
1974 Join Filter: (bmt1.c1 = bmt2.c1)
1975 -> Tid Scan on t1 bmt1
1976 TID Cond: (ctid = '(1,1)'::tid)
1977 -> Seq Scan on t2 bmt2
1978 Filter: (ctid = '(1,1)'::tid)
1979 -> Tid Scan on t3 bmt3
1980 TID Cond: (ctid = '(1,1)'::tid)
1981 -> Tid Scan on t4 bmt4
1982 TID Cond: (ctid = '(1,1)'::tid)
1988 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1989 Leading(b1t2 b1t3 b1t4 b1t1)
1990 Leading(b2t3 b2t4 b2t1 b2t2)
1992 EXPLAIN (COSTS false)
1994 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)'
1997 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)'
1999 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2001 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)'
2007 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2008 Leading(b1t2 b1t3 b1t4 b1t1)
2009 Leading(b2t3 b2t4 b2t1 b2t2)
2015 -------------------------------------------------------------------
2020 Join Filter: (b1t2.c1 = b1t1.c1)
2022 Join Filter: (b1t2.c1 = b1t4.c1)
2024 Join Filter: (b1t2.c1 = b1t3.c1)
2025 -> Seq Scan on t2 b1t2
2026 Filter: (ctid = '(1,1)'::tid)
2027 -> Tid Scan on t3 b1t3
2028 TID Cond: (ctid = '(1,1)'::tid)
2029 -> Tid Scan on t4 b1t4
2030 TID Cond: (ctid = '(1,1)'::tid)
2031 -> Tid Scan on t1 b1t1
2032 TID Cond: (ctid = '(1,1)'::tid)
2036 Join Filter: (b2t1.c1 = b2t2.c1)
2038 Join Filter: (b2t3.c1 = b2t1.c1)
2040 Join Filter: (b2t3.c1 = b2t4.c1)
2041 -> Tid Scan on t3 b2t3
2042 TID Cond: (ctid = '(1,1)'::tid)
2043 -> Tid Scan on t4 b2t4
2044 TID Cond: (ctid = '(1,1)'::tid)
2045 -> Tid Scan on t1 b2t1
2046 TID Cond: (ctid = '(1,1)'::tid)
2047 -> Seq Scan on t2 b2t2
2048 Filter: (ctid = '(1,1)'::tid)
2050 Join Filter: (bmt1.c1 = bmt4.c1)
2052 Join Filter: (bmt1.c1 = bmt3.c1)
2054 Join Filter: (bmt1.c1 = bmt2.c1)
2056 Join Filter: (c1.c1 = bmt1.c1)
2058 Join Filter: (c1.c1 = c2.c1)
2061 -> Tid Scan on t1 bmt1
2062 TID Cond: (ctid = '(1,1)'::tid)
2063 -> Seq Scan on t2 bmt2
2064 Filter: (ctid = '(1,1)'::tid)
2065 -> Tid Scan on t3 bmt3
2066 TID Cond: (ctid = '(1,1)'::tid)
2067 -> Tid Scan on t4 bmt4
2068 TID Cond: (ctid = '(1,1)'::tid)
2072 EXPLAIN (COSTS false)
2074 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)'
2077 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)'
2080 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)'
2082 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2084 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)'
2090 -----------------------------------------------------------------------------
2095 Join Filter: (b1t1.c1 = b1t4.c1)
2097 Join Filter: (b1t1.c1 = b1t3.c1)
2099 Join Filter: (b1t1.c1 = b1t2.c1)
2100 -> Tid Scan on t1 b1t1
2101 TID Cond: (ctid = '(1,1)'::tid)
2102 -> Seq Scan on t2 b1t2
2103 Filter: (ctid = '(1,1)'::tid)
2104 -> Tid Scan on t3 b1t3
2105 TID Cond: (ctid = '(1,1)'::tid)
2106 -> Tid Scan on t4 b1t4
2107 TID Cond: (ctid = '(1,1)'::tid)
2111 Join Filter: (b2t1.c1 = b2t4.c1)
2113 Join Filter: (b2t1.c1 = b2t3.c1)
2115 Join Filter: (b2t1.c1 = b2t2.c1)
2116 -> Tid Scan on t1 b2t1
2117 TID Cond: (ctid = '(1,1)'::tid)
2118 -> Seq Scan on t2 b2t2
2119 Filter: (ctid = '(1,1)'::tid)
2120 -> Tid Scan on t3 b2t3
2121 TID Cond: (ctid = '(1,1)'::tid)
2122 -> Tid Scan on t4 b2t4
2123 TID Cond: (ctid = '(1,1)'::tid)
2127 Join Filter: (b3t1.c1 = b3t4.c1)
2129 Join Filter: (b3t1.c1 = b3t3.c1)
2131 Join Filter: (b3t1.c1 = b3t2.c1)
2132 -> Tid Scan on t1 b3t1
2133 TID Cond: (ctid = '(1,1)'::tid)
2134 -> Seq Scan on t2 b3t2
2135 Filter: (ctid = '(1,1)'::tid)
2136 -> Tid Scan on t3 b3t3
2137 TID Cond: (ctid = '(1,1)'::tid)
2138 -> Tid Scan on t4 b3t4
2139 TID Cond: (ctid = '(1,1)'::tid)
2141 Join Filter: (bmt1.c1 = c3.c1)
2143 Join Filter: (bmt1.c1 = c2.c1)
2145 Join Filter: (bmt1.c1 = c1.c1)
2147 Join Filter: (bmt1.c1 = bmt4.c1)
2149 Join Filter: (bmt1.c1 = bmt3.c1)
2151 Join Filter: (bmt1.c1 = bmt2.c1)
2152 -> Tid Scan on t1 bmt1
2153 TID Cond: (ctid = '(1,1)'::tid)
2154 -> Seq Scan on t2 bmt2
2155 Filter: (ctid = '(1,1)'::tid)
2156 -> Tid Scan on t3 bmt3
2157 TID Cond: (ctid = '(1,1)'::tid)
2158 -> Tid Scan on t4 bmt4
2159 TID Cond: (ctid = '(1,1)'::tid)
2166 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2167 Leading(b1t2 b1t3 b1t4 b1t1)
2168 Leading(b2t3 b2t4 b2t1 b2t2)
2169 Leading(b3t4 b3t1 b3t2 b3t3)
2171 EXPLAIN (COSTS false)
2173 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)'
2176 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)'
2179 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)'
2181 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2183 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)'
2190 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2191 Leading(b1t2 b1t3 b1t4 b1t1)
2192 Leading(b2t3 b2t4 b2t1 b2t2)
2193 Leading(b3t4 b3t1 b3t2 b3t3)
2199 --------------------------------------------------------------------
2204 Join Filter: (b1t2.c1 = b1t1.c1)
2206 Join Filter: (b1t2.c1 = b1t4.c1)
2208 Join Filter: (b1t2.c1 = b1t3.c1)
2209 -> Seq Scan on t2 b1t2
2210 Filter: (ctid = '(1,1)'::tid)
2211 -> Tid Scan on t3 b1t3
2212 TID Cond: (ctid = '(1,1)'::tid)
2213 -> Tid Scan on t4 b1t4
2214 TID Cond: (ctid = '(1,1)'::tid)
2215 -> Tid Scan on t1 b1t1
2216 TID Cond: (ctid = '(1,1)'::tid)
2220 Join Filter: (b2t1.c1 = b2t2.c1)
2222 Join Filter: (b2t3.c1 = b2t1.c1)
2224 Join Filter: (b2t3.c1 = b2t4.c1)
2225 -> Tid Scan on t3 b2t3
2226 TID Cond: (ctid = '(1,1)'::tid)
2227 -> Tid Scan on t4 b2t4
2228 TID Cond: (ctid = '(1,1)'::tid)
2229 -> Tid Scan on t1 b2t1
2230 TID Cond: (ctid = '(1,1)'::tid)
2231 -> Seq Scan on t2 b2t2
2232 Filter: (ctid = '(1,1)'::tid)
2236 Join Filter: (b3t1.c1 = b3t3.c1)
2238 Join Filter: (b3t1.c1 = b3t2.c1)
2240 Join Filter: (b3t1.c1 = b3t4.c1)
2241 -> Tid Scan on t1 b3t1
2242 TID Cond: (ctid = '(1,1)'::tid)
2243 -> Tid Scan on t4 b3t4
2244 TID Cond: (ctid = '(1,1)'::tid)
2245 -> Seq Scan on t2 b3t2
2246 Filter: (ctid = '(1,1)'::tid)
2247 -> Tid Scan on t3 b3t3
2248 TID Cond: (ctid = '(1,1)'::tid)
2250 Join Filter: (bmt1.c1 = bmt4.c1)
2252 Join Filter: (bmt1.c1 = bmt3.c1)
2254 Join Filter: (bmt1.c1 = bmt2.c1)
2256 Join Filter: (c1.c1 = bmt1.c1)
2258 Join Filter: (c2.c1 = c1.c1)
2260 Join Filter: (c2.c1 = c3.c1)
2264 -> Tid Scan on t1 bmt1
2265 TID Cond: (ctid = '(1,1)'::tid)
2266 -> Seq Scan on t2 bmt2
2267 Filter: (ctid = '(1,1)'::tid)
2268 -> Tid Scan on t3 bmt3
2269 TID Cond: (ctid = '(1,1)'::tid)
2270 -> Tid Scan on t4 bmt4
2271 TID Cond: (ctid = '(1,1)'::tid)
2275 ---- No. L-2-2 the number of the tables per quiry block
2278 EXPLAIN (COSTS false)
2280 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2282 SELECT max(bmt1.c1), (
2283 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2285 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2287 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2291 -----------------------------------------------------------------
2295 InitPlan 1 (returns $0)
2297 -> Tid Scan on t1 b1t1
2298 TID Cond: (ctid = '(1,1)'::tid)
2299 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2300 InitPlan 4 (returns $3)
2302 InitPlan 3 (returns $2)
2304 -> Tid Scan on t1 b2t1
2305 TID Cond: (ctid = '(1,1)'::tid)
2306 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2307 InitPlan 6 (returns $5)
2309 InitPlan 5 (returns $4)
2311 -> Tid Scan on t1 b3t1
2312 TID Cond: (ctid = '(1,1)'::tid)
2313 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2315 -> Tid Scan on t1 bmt1
2316 TID Cond: (ctid = '(1,1)'::tid)
2317 Filter: ((c1 <> $5) AND (c1 = 1))
2324 EXPLAIN (COSTS false)
2326 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2328 SELECT max(bmt1.c1), (
2329 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2331 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2333 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2344 -----------------------------------------------------------------
2348 InitPlan 1 (returns $0)
2350 -> Tid Scan on t1 b1t1
2351 TID Cond: (ctid = '(1,1)'::tid)
2352 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2353 InitPlan 4 (returns $3)
2355 InitPlan 3 (returns $2)
2357 -> Tid Scan on t1 b2t1
2358 TID Cond: (ctid = '(1,1)'::tid)
2359 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2360 InitPlan 6 (returns $5)
2362 InitPlan 5 (returns $4)
2364 -> Tid Scan on t1 b3t1
2365 TID Cond: (ctid = '(1,1)'::tid)
2366 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2368 -> Tid Scan on t1 bmt1
2369 TID Cond: (ctid = '(1,1)'::tid)
2370 Filter: ((c1 <> $5) AND (c1 = 1))
2375 EXPLAIN (COSTS false)
2377 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)'
2379 SELECT max(bmt1.c1), (
2380 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)'
2382 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2385 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)'
2389 -------------------------------------------------------
2394 Join Filter: (b1t1.c1 = b1t2.c1)
2395 -> Tid Scan on t1 b1t1
2396 TID Cond: (ctid = '(1,1)'::tid)
2397 -> Seq Scan on t2 b1t2
2398 Filter: (ctid = '(1,1)'::tid)
2399 InitPlan 2 (returns $1)
2402 Join Filter: (b2t1.c1 = b2t2.c1)
2403 -> Tid Scan on t1 b2t1
2404 TID Cond: (ctid = '(1,1)'::tid)
2405 -> Seq Scan on t2 b2t2
2406 Filter: (ctid = '(1,1)'::tid)
2407 InitPlan 3 (returns $2)
2410 Join Filter: (b3t1.c1 = b3t2.c1)
2411 -> Tid Scan on t1 b3t1
2412 TID Cond: (ctid = '(1,1)'::tid)
2413 -> Seq Scan on t2 b3t2
2414 Filter: (ctid = '(1,1)'::tid)
2416 Join Filter: (bmt1.c1 = c1.c1)
2418 Join Filter: (bmt1.c1 = bmt2.c1)
2419 -> Tid Scan on t1 bmt1
2420 TID Cond: (ctid = '(1,1)'::tid)
2422 -> Seq Scan on t2 bmt2
2423 Filter: (ctid = '(1,1)'::tid)
2428 Leading(c1 bmt2 bmt1)
2433 EXPLAIN (COSTS false)
2435 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)'
2437 SELECT max(bmt1.c1), (
2438 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)'
2440 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2443 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)'
2448 Leading(c1 bmt2 bmt1)
2457 -------------------------------------------------------
2462 Join Filter: (b1t1.c1 = b1t2.c1)
2463 -> Tid Scan on t1 b1t1
2464 TID Cond: (ctid = '(1,1)'::tid)
2465 -> Seq Scan on t2 b1t2
2466 Filter: (ctid = '(1,1)'::tid)
2467 InitPlan 2 (returns $1)
2470 Join Filter: (b2t1.c1 = b2t2.c1)
2471 -> Tid Scan on t1 b2t1
2472 TID Cond: (ctid = '(1,1)'::tid)
2473 -> Seq Scan on t2 b2t2
2474 Filter: (ctid = '(1,1)'::tid)
2475 InitPlan 3 (returns $2)
2478 Join Filter: (b3t1.c1 = b3t2.c1)
2479 -> Tid Scan on t1 b3t1
2480 TID Cond: (ctid = '(1,1)'::tid)
2481 -> Seq Scan on t2 b3t2
2482 Filter: (ctid = '(1,1)'::tid)
2484 Join Filter: (bmt2.c1 = bmt1.c1)
2486 Join Filter: (bmt2.c1 = c1.c1)
2487 -> Seq Scan on t2 bmt2
2488 Filter: (ctid = '(1,1)'::tid)
2490 -> Tid Scan on t1 bmt1
2491 TID Cond: (ctid = '(1,1)'::tid)
2496 EXPLAIN (COSTS false)
2498 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)'
2500 SELECT max(bmt1.c1), (
2501 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)'
2503 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
2505 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)'
2509 -------------------------------------------------------------------
2514 Join Filter: (b1t1.c1 = b1t4.c1)
2516 Join Filter: (b1t1.c1 = b1t3.c1)
2518 Join Filter: (b1t1.c1 = b1t2.c1)
2519 -> Tid Scan on t1 b1t1
2520 TID Cond: (ctid = '(1,1)'::tid)
2521 -> Seq Scan on t2 b1t2
2522 Filter: (ctid = '(1,1)'::tid)
2523 -> Tid Scan on t3 b1t3
2524 TID Cond: (ctid = '(1,1)'::tid)
2525 -> Tid Scan on t4 b1t4
2526 TID Cond: (ctid = '(1,1)'::tid)
2527 InitPlan 2 (returns $1)
2530 Join Filter: (b2t1.c1 = b2t4.c1)
2532 Join Filter: (b2t1.c1 = b2t3.c1)
2534 Join Filter: (b2t1.c1 = b2t2.c1)
2535 -> Tid Scan on t1 b2t1
2536 TID Cond: (ctid = '(1,1)'::tid)
2537 -> Seq Scan on t2 b2t2
2538 Filter: (ctid = '(1,1)'::tid)
2539 -> Tid Scan on t3 b2t3
2540 TID Cond: (ctid = '(1,1)'::tid)
2541 -> Tid Scan on t4 b2t4
2542 TID Cond: (ctid = '(1,1)'::tid)
2543 InitPlan 3 (returns $2)
2546 Join Filter: (b3t1.c1 = b3t4.c1)
2548 Join Filter: (b3t1.c1 = b3t3.c1)
2550 Join Filter: (b3t1.c1 = b3t2.c1)
2551 -> Tid Scan on t1 b3t1
2552 TID Cond: (ctid = '(1,1)'::tid)
2553 -> Seq Scan on t2 b3t2
2554 Filter: (ctid = '(1,1)'::tid)
2555 -> Tid Scan on t3 b3t3
2556 TID Cond: (ctid = '(1,1)'::tid)
2557 -> Tid Scan on t4 b3t4
2558 TID Cond: (ctid = '(1,1)'::tid)
2560 Join Filter: (bmt1.c1 = c1.c1)
2562 Join Filter: (bmt1.c1 = bmt4.c1)
2564 Join Filter: (bmt1.c1 = bmt3.c1)
2566 Join Filter: (bmt1.c1 = bmt2.c1)
2567 -> Tid Scan on t1 bmt1
2568 TID Cond: (ctid = '(1,1)'::tid)
2570 -> Seq Scan on t2 bmt2
2571 Filter: (ctid = '(1,1)'::tid)
2572 -> Tid Scan on t3 bmt3
2573 TID Cond: (ctid = '(1,1)'::tid)
2574 -> Tid Scan on t4 bmt4
2575 TID Cond: (ctid = '(1,1)'::tid)
2580 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2581 Leading(b1t4 b1t3 b1t2 b1t1)
2582 Leading(b2t4 b2t3 b2t2 b2t1)
2583 Leading(b3t4 b3t3 b3t2 b3t1)
2585 EXPLAIN (COSTS false)
2587 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)'
2589 SELECT max(bmt1.c1), (
2590 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)'
2592 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
2594 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)'
2599 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2600 Leading(b1t4 b1t3 b1t2 b1t1)
2601 Leading(b2t4 b2t3 b2t2 b2t1)
2602 Leading(b3t4 b3t3 b3t2 b3t1)
2608 -------------------------------------------------------------------
2613 Join Filter: (b1t2.c1 = b1t1.c1)
2615 Join Filter: (b1t3.c1 = b1t2.c1)
2617 Join Filter: (b1t3.c1 = b1t4.c1)
2618 -> Tid Scan on t3 b1t3
2619 TID Cond: (ctid = '(1,1)'::tid)
2620 -> Tid Scan on t4 b1t4
2621 TID Cond: (ctid = '(1,1)'::tid)
2622 -> Seq Scan on t2 b1t2
2623 Filter: (ctid = '(1,1)'::tid)
2624 -> Tid Scan on t1 b1t1
2625 TID Cond: (ctid = '(1,1)'::tid)
2626 InitPlan 2 (returns $1)
2629 Join Filter: (b2t2.c1 = b2t1.c1)
2631 Join Filter: (b2t3.c1 = b2t2.c1)
2633 Join Filter: (b2t3.c1 = b2t4.c1)
2634 -> Tid Scan on t3 b2t3
2635 TID Cond: (ctid = '(1,1)'::tid)
2636 -> Tid Scan on t4 b2t4
2637 TID Cond: (ctid = '(1,1)'::tid)
2638 -> Seq Scan on t2 b2t2
2639 Filter: (ctid = '(1,1)'::tid)
2640 -> Tid Scan on t1 b2t1
2641 TID Cond: (ctid = '(1,1)'::tid)
2642 InitPlan 3 (returns $2)
2645 Join Filter: (b3t2.c1 = b3t1.c1)
2647 Join Filter: (b3t3.c1 = b3t2.c1)
2649 Join Filter: (b3t3.c1 = b3t4.c1)
2650 -> Tid Scan on t3 b3t3
2651 TID Cond: (ctid = '(1,1)'::tid)
2652 -> Tid Scan on t4 b3t4
2653 TID Cond: (ctid = '(1,1)'::tid)
2654 -> Seq Scan on t2 b3t2
2655 Filter: (ctid = '(1,1)'::tid)
2656 -> Tid Scan on t1 b3t1
2657 TID Cond: (ctid = '(1,1)'::tid)
2659 Join Filter: (bmt2.c1 = bmt1.c1)
2661 Join Filter: (bmt3.c1 = bmt2.c1)
2663 Join Filter: (bmt4.c1 = bmt3.c1)
2665 Join Filter: (bmt4.c1 = c1.c1)
2666 -> Tid Scan on t4 bmt4
2667 TID Cond: (ctid = '(1,1)'::tid)
2669 -> Tid Scan on t3 bmt3
2670 TID Cond: (ctid = '(1,1)'::tid)
2671 -> Seq Scan on t2 bmt2
2672 Filter: (ctid = '(1,1)'::tid)
2673 -> Tid Scan on t1 bmt1
2674 TID Cond: (ctid = '(1,1)'::tid)
2679 EXPLAIN (COSTS false)
2681 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)'
2683 SELECT max(bmt1.c1), (
2684 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2686 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
2688 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2692 -------------------------------------------------------------------
2697 Join Filter: (b1t1.c1 = b1t4.c1)
2699 Join Filter: (b1t1.c1 = b1t3.c1)
2701 Join Filter: (b1t1.c1 = b1t2.c1)
2702 -> Tid Scan on t1 b1t1
2703 TID Cond: (ctid = '(1,1)'::tid)
2704 -> Seq Scan on t2 b1t2
2705 Filter: (ctid = '(1,1)'::tid)
2706 -> Tid Scan on t3 b1t3
2707 TID Cond: (ctid = '(1,1)'::tid)
2708 -> Tid Scan on t4 b1t4
2709 TID Cond: (ctid = '(1,1)'::tid)
2710 InitPlan 3 (returns $2)
2712 InitPlan 2 (returns $1)
2714 -> Tid Scan on t1 b2t1
2715 TID Cond: (ctid = '(1,1)'::tid)
2716 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2717 InitPlan 4 (returns $3)
2719 -> Tid Scan on t1 b3t1
2720 TID Cond: (ctid = '(1,1)'::tid)
2722 Join Filter: (bmt1.c1 = c1.c1)
2724 Join Filter: (bmt1.c1 = bmt4.c1)
2726 Join Filter: (bmt1.c1 = bmt3.c1)
2728 Join Filter: (bmt1.c1 = bmt2.c1)
2729 -> Tid Scan on t1 bmt1
2730 TID Cond: (ctid = '(1,1)'::tid)
2732 -> Seq Scan on t2 bmt2
2733 Filter: (ctid = '(1,1)'::tid)
2734 -> Tid Scan on t3 bmt3
2735 TID Cond: (ctid = '(1,1)'::tid)
2736 -> Tid Scan on t4 bmt4
2737 TID Cond: (ctid = '(1,1)'::tid)
2742 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2743 Leading(b1t4 b1t3 b1t2 b1t1)
2745 EXPLAIN (COSTS false)
2747 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)'
2749 SELECT max(bmt1.c1), (
2750 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2752 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
2754 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2759 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2760 Leading(b1t4 b1t3 b1t2 b1t1)
2766 -------------------------------------------------------------------
2771 Join Filter: (b1t2.c1 = b1t1.c1)
2773 Join Filter: (b1t3.c1 = b1t2.c1)
2775 Join Filter: (b1t3.c1 = b1t4.c1)
2776 -> Tid Scan on t3 b1t3
2777 TID Cond: (ctid = '(1,1)'::tid)
2778 -> Tid Scan on t4 b1t4
2779 TID Cond: (ctid = '(1,1)'::tid)
2780 -> Seq Scan on t2 b1t2
2781 Filter: (ctid = '(1,1)'::tid)
2782 -> Tid Scan on t1 b1t1
2783 TID Cond: (ctid = '(1,1)'::tid)
2784 InitPlan 3 (returns $2)
2786 InitPlan 2 (returns $1)
2788 -> Tid Scan on t1 b2t1
2789 TID Cond: (ctid = '(1,1)'::tid)
2790 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2791 InitPlan 4 (returns $3)
2793 -> Tid Scan on t1 b3t1
2794 TID Cond: (ctid = '(1,1)'::tid)
2796 Join Filter: (bmt2.c1 = bmt1.c1)
2798 Join Filter: (bmt3.c1 = bmt2.c1)
2800 Join Filter: (bmt4.c1 = bmt3.c1)
2802 Join Filter: (bmt4.c1 = c1.c1)
2803 -> Tid Scan on t4 bmt4
2804 TID Cond: (ctid = '(1,1)'::tid)
2806 -> Tid Scan on t3 bmt3
2807 TID Cond: (ctid = '(1,1)'::tid)
2808 -> Seq Scan on t2 bmt2
2809 Filter: (ctid = '(1,1)'::tid)
2810 -> Tid Scan on t1 bmt1
2811 TID Cond: (ctid = '(1,1)'::tid)
2816 ---- No. L-2-3 RULE or VIEW
2819 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2821 -----------------------------------------------------------------
2824 Join Filter: (t1.c1 = t4.c1)
2826 Join Filter: (t1.c1 = t3.c1)
2828 Join Filter: (t1.c1 = t2.c1)
2831 TID Cond: (ctid = '(1,1)'::tid)
2834 TID Cond: (ctid = '(1,1)'::tid)
2836 Filter: (ctid = '(1,1)'::tid)
2838 TID Cond: (ctid = '(1,1)'::tid)
2840 TID Cond: (ctid = '(1,1)'::tid)
2843 /*+ Leading(t4 t3 t2 t1 r1) */
2844 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2847 Leading(t4 t3 t2 t1 r1)
2853 -----------------------------------------------------------------
2857 Join Filter: (t2.c1 = t1.c1)
2859 Join Filter: (t3.c1 = t2.c1)
2861 Join Filter: (t3.c1 = t4.c1)
2863 TID Cond: (ctid = '(1,1)'::tid)
2865 TID Cond: (ctid = '(1,1)'::tid)
2867 Filter: (ctid = '(1,1)'::tid)
2869 TID Cond: (ctid = '(1,1)'::tid)
2871 TID Cond: (ctid = '(1,1)'::tid)
2875 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2877 -----------------------------------------------------------------
2880 Join Filter: (b1t1.c1 = b1t4.c1)
2882 Join Filter: (b1t1.c1 = b1t3.c1)
2884 Join Filter: (b1t1.c1 = b1t2.c1)
2887 TID Cond: (ctid = '(1,1)'::tid)
2889 -> Tid Scan on t1 b1t1
2890 TID Cond: (ctid = '(1,1)'::tid)
2891 -> Seq Scan on t2 b1t2
2892 Filter: (ctid = '(1,1)'::tid)
2893 -> Tid Scan on t3 b1t3
2894 TID Cond: (ctid = '(1,1)'::tid)
2895 -> Tid Scan on t4 b1t4
2896 TID Cond: (ctid = '(1,1)'::tid)
2899 /*+ Leading(b1t1 b1t2 b1t3 b1t4 r1_) */
2900 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2903 Leading(b1t1 b1t2 b1t3 b1t4 r1_)
2909 -----------------------------------------------------------------
2913 Join Filter: (b1t1.c1 = b1t4.c1)
2915 Join Filter: (b1t1.c1 = b1t3.c1)
2917 Join Filter: (b1t1.c1 = b1t2.c1)
2918 -> Tid Scan on t1 b1t1
2919 TID Cond: (ctid = '(1,1)'::tid)
2920 -> Seq Scan on t2 b1t2
2921 Filter: (ctid = '(1,1)'::tid)
2922 -> Tid Scan on t3 b1t3
2923 TID Cond: (ctid = '(1,1)'::tid)
2924 -> Tid Scan on t4 b1t4
2925 TID Cond: (ctid = '(1,1)'::tid)
2927 TID Cond: (ctid = '(1,1)'::tid)
2932 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2934 -----------------------------------------------------------------
2937 Join Filter: (t1.c1 = t4.c1)
2939 Join Filter: (t1.c1 = t3.c1)
2941 Join Filter: (t1.c1 = t2.c1)
2944 TID Cond: (ctid = '(1,1)'::tid)
2947 TID Cond: (ctid = '(1,1)'::tid)
2949 Filter: (ctid = '(1,1)'::tid)
2951 TID Cond: (ctid = '(1,1)'::tid)
2953 TID Cond: (ctid = '(1,1)'::tid)
2957 Join Filter: (t1.c1 = t4.c1)
2959 Join Filter: (t1.c1 = t3.c1)
2961 Join Filter: (t1.c1 = t2.c1)
2964 TID Cond: (ctid = '(1,1)'::tid)
2967 TID Cond: (ctid = '(1,1)'::tid)
2969 Filter: (ctid = '(1,1)'::tid)
2971 TID Cond: (ctid = '(1,1)'::tid)
2973 TID Cond: (ctid = '(1,1)'::tid)
2976 /*+ Leading(t4 t3 t2 t1 r2) */
2977 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2980 Leading(t4 t3 t2 t1 r2)
2987 Leading(t4 t3 t2 t1 r2)
2993 -----------------------------------------------------------------
2997 Join Filter: (t2.c1 = t1.c1)
2999 Join Filter: (t3.c1 = t2.c1)
3001 Join Filter: (t3.c1 = t4.c1)
3003 TID Cond: (ctid = '(1,1)'::tid)
3005 TID Cond: (ctid = '(1,1)'::tid)
3007 Filter: (ctid = '(1,1)'::tid)
3009 TID Cond: (ctid = '(1,1)'::tid)
3011 TID Cond: (ctid = '(1,1)'::tid)
3017 Join Filter: (t2.c1 = t1.c1)
3019 Join Filter: (t3.c1 = t2.c1)
3021 Join Filter: (t3.c1 = t4.c1)
3023 TID Cond: (ctid = '(1,1)'::tid)
3025 TID Cond: (ctid = '(1,1)'::tid)
3027 Filter: (ctid = '(1,1)'::tid)
3029 TID Cond: (ctid = '(1,1)'::tid)
3031 TID Cond: (ctid = '(1,1)'::tid)
3035 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3037 -----------------------------------------------------------------
3040 Join Filter: (b1t1.c1 = b1t4.c1)
3042 Join Filter: (b1t1.c1 = b1t3.c1)
3044 Join Filter: (b1t1.c1 = b1t2.c1)
3047 TID Cond: (ctid = '(1,1)'::tid)
3049 -> Tid Scan on t1 b1t1
3050 TID Cond: (ctid = '(1,1)'::tid)
3051 -> Seq Scan on t2 b1t2
3052 Filter: (ctid = '(1,1)'::tid)
3053 -> Tid Scan on t3 b1t3
3054 TID Cond: (ctid = '(1,1)'::tid)
3055 -> Tid Scan on t4 b1t4
3056 TID Cond: (ctid = '(1,1)'::tid)
3060 Join Filter: (b2t1.c1 = b2t4.c1)
3062 Join Filter: (b2t1.c1 = b2t3.c1)
3064 Join Filter: (b2t1.c1 = b2t2.c1)
3067 TID Cond: (ctid = '(1,1)'::tid)
3069 -> Tid Scan on t1 b2t1
3070 TID Cond: (ctid = '(1,1)'::tid)
3071 -> Seq Scan on t2 b2t2
3072 Filter: (ctid = '(1,1)'::tid)
3073 -> Tid Scan on t3 b2t3
3074 TID Cond: (ctid = '(1,1)'::tid)
3075 -> Tid Scan on t4 b2t4
3076 TID Cond: (ctid = '(1,1)'::tid)
3080 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3081 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3083 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3086 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3088 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3094 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3096 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3101 -----------------------------------------------------------------
3105 Join Filter: (b1t1.c1 = b1t4.c1)
3107 Join Filter: (b1t1.c1 = b1t3.c1)
3109 Join Filter: (b1t1.c1 = b1t2.c1)
3110 -> Tid Scan on t1 b1t1
3111 TID Cond: (ctid = '(1,1)'::tid)
3112 -> Seq Scan on t2 b1t2
3113 Filter: (ctid = '(1,1)'::tid)
3114 -> Tid Scan on t3 b1t3
3115 TID Cond: (ctid = '(1,1)'::tid)
3116 -> Tid Scan on t4 b1t4
3117 TID Cond: (ctid = '(1,1)'::tid)
3119 TID Cond: (ctid = '(1,1)'::tid)
3125 Join Filter: (b2t1.c1 = b2t4.c1)
3127 Join Filter: (b2t1.c1 = b2t3.c1)
3129 Join Filter: (b2t1.c1 = b2t2.c1)
3130 -> Tid Scan on t1 b2t1
3131 TID Cond: (ctid = '(1,1)'::tid)
3132 -> Seq Scan on t2 b2t2
3133 Filter: (ctid = '(1,1)'::tid)
3134 -> Tid Scan on t3 b2t3
3135 TID Cond: (ctid = '(1,1)'::tid)
3136 -> Tid Scan on t4 b2t4
3137 TID Cond: (ctid = '(1,1)'::tid)
3139 TID Cond: (ctid = '(1,1)'::tid)
3144 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3146 -----------------------------------------------------------------
3149 Join Filter: (t1.c1 = t4.c1)
3151 Join Filter: (t1.c1 = t3.c1)
3153 Join Filter: (t1.c1 = t2.c1)
3156 TID Cond: (ctid = '(1,1)'::tid)
3159 TID Cond: (ctid = '(1,1)'::tid)
3161 Filter: (ctid = '(1,1)'::tid)
3163 TID Cond: (ctid = '(1,1)'::tid)
3165 TID Cond: (ctid = '(1,1)'::tid)
3169 Join Filter: (t1.c1 = t4.c1)
3171 Join Filter: (t1.c1 = t3.c1)
3173 Join Filter: (t1.c1 = t2.c1)
3176 TID Cond: (ctid = '(1,1)'::tid)
3179 TID Cond: (ctid = '(1,1)'::tid)
3181 Filter: (ctid = '(1,1)'::tid)
3183 TID Cond: (ctid = '(1,1)'::tid)
3185 TID Cond: (ctid = '(1,1)'::tid)
3189 Join Filter: (t1.c1 = t4.c1)
3191 Join Filter: (t1.c1 = t3.c1)
3193 Join Filter: (t1.c1 = t2.c1)
3196 TID Cond: (ctid = '(1,1)'::tid)
3199 TID Cond: (ctid = '(1,1)'::tid)
3201 Filter: (ctid = '(1,1)'::tid)
3203 TID Cond: (ctid = '(1,1)'::tid)
3205 TID Cond: (ctid = '(1,1)'::tid)
3208 /*+ Leading(t4 t3 t2 t1 r3) */
3209 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3212 Leading(t4 t3 t2 t1 r3)
3219 Leading(t4 t3 t2 t1 r3)
3226 Leading(t4 t3 t2 t1 r3)
3232 -----------------------------------------------------------------
3236 Join Filter: (t2.c1 = t1.c1)
3238 Join Filter: (t3.c1 = t2.c1)
3240 Join Filter: (t3.c1 = t4.c1)
3242 TID Cond: (ctid = '(1,1)'::tid)
3244 TID Cond: (ctid = '(1,1)'::tid)
3246 Filter: (ctid = '(1,1)'::tid)
3248 TID Cond: (ctid = '(1,1)'::tid)
3250 TID Cond: (ctid = '(1,1)'::tid)
3256 Join Filter: (t2.c1 = t1.c1)
3258 Join Filter: (t3.c1 = t2.c1)
3260 Join Filter: (t3.c1 = t4.c1)
3262 TID Cond: (ctid = '(1,1)'::tid)
3264 TID Cond: (ctid = '(1,1)'::tid)
3266 Filter: (ctid = '(1,1)'::tid)
3268 TID Cond: (ctid = '(1,1)'::tid)
3270 TID Cond: (ctid = '(1,1)'::tid)
3276 Join Filter: (t2.c1 = t1.c1)
3278 Join Filter: (t3.c1 = t2.c1)
3280 Join Filter: (t3.c1 = t4.c1)
3282 TID Cond: (ctid = '(1,1)'::tid)
3284 TID Cond: (ctid = '(1,1)'::tid)
3286 Filter: (ctid = '(1,1)'::tid)
3288 TID Cond: (ctid = '(1,1)'::tid)
3290 TID Cond: (ctid = '(1,1)'::tid)
3294 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3296 -----------------------------------------------------------------
3299 Join Filter: (b1t1.c1 = b1t4.c1)
3301 Join Filter: (b1t1.c1 = b1t3.c1)
3303 Join Filter: (b1t1.c1 = b1t2.c1)
3306 TID Cond: (ctid = '(1,1)'::tid)
3308 -> Tid Scan on t1 b1t1
3309 TID Cond: (ctid = '(1,1)'::tid)
3310 -> Seq Scan on t2 b1t2
3311 Filter: (ctid = '(1,1)'::tid)
3312 -> Tid Scan on t3 b1t3
3313 TID Cond: (ctid = '(1,1)'::tid)
3314 -> Tid Scan on t4 b1t4
3315 TID Cond: (ctid = '(1,1)'::tid)
3319 Join Filter: (b2t1.c1 = b2t4.c1)
3321 Join Filter: (b2t1.c1 = b2t3.c1)
3323 Join Filter: (b2t1.c1 = b2t2.c1)
3326 TID Cond: (ctid = '(1,1)'::tid)
3328 -> Tid Scan on t1 b2t1
3329 TID Cond: (ctid = '(1,1)'::tid)
3330 -> Seq Scan on t2 b2t2
3331 Filter: (ctid = '(1,1)'::tid)
3332 -> Tid Scan on t3 b2t3
3333 TID Cond: (ctid = '(1,1)'::tid)
3334 -> Tid Scan on t4 b2t4
3335 TID Cond: (ctid = '(1,1)'::tid)
3339 Join Filter: (b3t1.c1 = b3t4.c1)
3341 Join Filter: (b3t1.c1 = b3t3.c1)
3343 Join Filter: (b3t1.c1 = b3t2.c1)
3346 TID Cond: (ctid = '(1,1)'::tid)
3348 -> Tid Scan on t1 b3t1
3349 TID Cond: (ctid = '(1,1)'::tid)
3350 -> Seq Scan on t2 b3t2
3351 Filter: (ctid = '(1,1)'::tid)
3352 -> Tid Scan on t3 b3t3
3353 TID Cond: (ctid = '(1,1)'::tid)
3354 -> Tid Scan on t4 b3t4
3355 TID Cond: (ctid = '(1,1)'::tid)
3359 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3360 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3361 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3363 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3366 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3368 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3369 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3375 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3377 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3378 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3384 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3386 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3387 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3392 -----------------------------------------------------------------
3396 Join Filter: (b1t1.c1 = b1t4.c1)
3398 Join Filter: (b1t1.c1 = b1t3.c1)
3400 Join Filter: (b1t1.c1 = b1t2.c1)
3401 -> Tid Scan on t1 b1t1
3402 TID Cond: (ctid = '(1,1)'::tid)
3403 -> Seq Scan on t2 b1t2
3404 Filter: (ctid = '(1,1)'::tid)
3405 -> Tid Scan on t3 b1t3
3406 TID Cond: (ctid = '(1,1)'::tid)
3407 -> Tid Scan on t4 b1t4
3408 TID Cond: (ctid = '(1,1)'::tid)
3410 TID Cond: (ctid = '(1,1)'::tid)
3416 Join Filter: (b2t1.c1 = b2t4.c1)
3418 Join Filter: (b2t1.c1 = b2t3.c1)
3420 Join Filter: (b2t1.c1 = b2t2.c1)
3421 -> Tid Scan on t1 b2t1
3422 TID Cond: (ctid = '(1,1)'::tid)
3423 -> Seq Scan on t2 b2t2
3424 Filter: (ctid = '(1,1)'::tid)
3425 -> Tid Scan on t3 b2t3
3426 TID Cond: (ctid = '(1,1)'::tid)
3427 -> Tid Scan on t4 b2t4
3428 TID Cond: (ctid = '(1,1)'::tid)
3430 TID Cond: (ctid = '(1,1)'::tid)
3436 Join Filter: (b3t1.c1 = b3t4.c1)
3438 Join Filter: (b3t1.c1 = b3t3.c1)
3440 Join Filter: (b3t1.c1 = b3t2.c1)
3441 -> Tid Scan on t1 b3t1
3442 TID Cond: (ctid = '(1,1)'::tid)
3443 -> Seq Scan on t2 b3t2
3444 Filter: (ctid = '(1,1)'::tid)
3445 -> Tid Scan on t3 b3t3
3446 TID Cond: (ctid = '(1,1)'::tid)
3447 -> Tid Scan on t4 b3t4
3448 TID Cond: (ctid = '(1,1)'::tid)
3450 TID Cond: (ctid = '(1,1)'::tid)
3455 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3457 ------------------------------------
3459 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3460 -> Seq Scan on t1 v1t1
3462 -> Seq Scan on t1 v1t1_1
3465 /*+Leading(v1t1 v1t1)*/
3466 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3467 INFO: hint syntax error at or near "Leading(v1t1 v1t1)"
3468 DETAIL: Relation name "v1t1" is ambiguous.
3477 ------------------------------------
3479 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3480 -> Seq Scan on t1 v1t1
3482 -> Seq Scan on t1 v1t1_1
3486 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3488 -----------------------------------
3490 Hash Cond: (v1t1.c1 = v1t1_.c1)
3491 -> Seq Scan on t1 v1t1
3493 -> Seq Scan on t1 v1t1_
3496 /*+Leading(v1t1 v1t1_)*/
3497 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3506 -----------------------------------
3508 Hash Cond: (v1t1.c1 = v1t1_.c1)
3509 -> Seq Scan on t1 v1t1
3511 -> Seq Scan on t1 v1t1_
3515 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3517 ------------------------------------
3519 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3520 -> Seq Scan on t1 r4t1
3522 -> Seq Scan on t1 r4t1_1
3525 /*+Leading(r4t1 r4t1)*/
3526 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3527 INFO: hint syntax error at or near "Leading(r4t1 r4t1)"
3528 DETAIL: Relation name "r4t1" is ambiguous.
3537 ------------------------------------
3539 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3540 -> Seq Scan on t1 r4t1
3542 -> Seq Scan on t1 r4t1_1
3546 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3548 ----------------------------------
3550 Hash Cond: (r4t1.c1 = r5t1.c1)
3551 -> Seq Scan on t1 r4t1
3553 -> Seq Scan on t1 r5t1
3556 /*+Leading(r4t1 r5t1)*/
3557 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3566 ----------------------------------
3568 Hash Cond: (r4t1.c1 = r5t1.c1)
3569 -> Seq Scan on t1 r4t1
3571 -> Seq Scan on t1 r5t1
3575 ---- No. L-2-4 VALUES clause
3578 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;
3580 -------------------------------------------------
3583 Hash Cond: (t2.c1 = "*VALUES*".column1)
3586 -> Values Scan on "*VALUES*"
3587 -> Index Scan using t1_i1 on t1
3588 Index Cond: (c1 = t2.c1)
3591 /*+ Leading(t3 t1 t2) */
3592 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;
3601 -------------------------------------------------
3604 Hash Cond: (t2.c1 = "*VALUES*".column1)
3607 -> Values Scan on "*VALUES*"
3608 -> Index Scan using t1_i1 on t1
3609 Index Cond: (c1 = t2.c1)
3612 /*+ Leading(*VALUES* t1 t2) */
3613 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;
3616 Leading(*VALUES* t1 t2)
3622 -----------------------------------------------------
3625 -> Values Scan on "*VALUES*"
3626 -> Index Scan using t1_i1 on t1
3627 Index Cond: (c1 = "*VALUES*".column1)
3628 -> Index Scan using t2_i1 on t2
3629 Index Cond: (c1 = t1.c1)
3633 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;
3635 -------------------------------------------------------
3637 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3640 Hash Cond: (t2.c1 = "*VALUES*".column1)
3643 -> Values Scan on "*VALUES*"
3644 -> Index Scan using t1_i1 on t1
3645 Index Cond: (c1 = t2.c1)
3646 -> Values Scan on "*VALUES*_1"
3649 /*+ Leading(t4 t3 t2 t1) */
3650 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;
3654 Leading(t4 t3 t2 t1)
3659 -------------------------------------------------------
3661 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3664 Hash Cond: (t2.c1 = "*VALUES*".column1)
3667 -> Values Scan on "*VALUES*"
3668 -> Index Scan using t1_i1 on t1
3669 Index Cond: (c1 = t2.c1)
3670 -> Values Scan on "*VALUES*_1"
3673 /*+ Leading(*VALUES* t3 t2 t1) */
3674 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;
3675 INFO: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) "
3676 DETAIL: Relation name "*VALUES*" is ambiguous.
3682 Leading(*VALUES* t3 t2 t1)
3685 -------------------------------------------------------
3687 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3690 Hash Cond: (t2.c1 = "*VALUES*".column1)
3693 -> Values Scan on "*VALUES*"
3694 -> Index Scan using t1_i1 on t1
3695 Index Cond: (c1 = t2.c1)
3696 -> Values Scan on "*VALUES*_1"
3700 ---- No. L-3-1 leading the order of table joins
3702 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3704 ------------------------------------------
3706 Merge Cond: (t1.c1 = t2.c1)
3708 Merge Cond: (t1.c1 = t3.c1)
3709 -> Index Scan using t1_i1 on t1
3710 -> Index Scan using t3_i1 on t3
3717 /*+Leading(t3 t1 t2)*/
3718 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3727 ------------------------------------------
3729 Merge Cond: (t1.c1 = t2.c1)
3731 Merge Cond: (t1.c1 = t3.c1)
3732 -> Index Scan using t1_i1 on t1
3733 -> Index Scan using t3_i1 on t3
3740 /*+Leading(t1 t2 t3)*/
3741 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3750 ------------------------------------------------
3752 Hash Cond: (t3.c1 = t1.c1)
3756 Merge Cond: (t1.c1 = t2.c1)
3757 -> Index Scan using t1_i1 on t1
3764 ---- No. L-3-2 GUC parameter to disable hints
3766 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3768 ------------------------------------------
3770 Merge Cond: (t1.c1 = t2.c1)
3772 Merge Cond: (t1.c1 = t3.c1)
3773 -> Index Scan using t1_i1 on t1
3774 -> Index Scan using t3_i1 on t3
3781 Set geqo_threshold = 3;
3783 /*+Leading(t1 t2 t3)*/
3784 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3793 ------------------------------------------
3795 Merge Cond: (t1.c1 = t2.c1)
3797 Merge Cond: (t1.c1 = t3.c1)
3798 -> Index Scan using t1_i1 on t1
3799 -> Index Scan using t3_i1 on t3
3805 Reset geqo_threshold;
3807 Set geqo_threshold = 4;
3809 /*+Leading(t1 t2 t3)*/
3810 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3819 ------------------------------------------------
3821 Hash Cond: (t3.c1 = t1.c1)
3825 Merge Cond: (t1.c1 = t2.c1)
3826 -> Index Scan using t1_i1 on t1
3832 Reset geqo_threshold;
3834 Set from_collapse_limit = 2;
3835 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3837 -----------------------------------------------------
3839 Hash Cond: (t1.c1 = v2t1.c1)
3843 Merge Cond: (v2t1.c1 = v2t2.c1)
3844 -> Index Scan using t1_i1 on t1 v2t1
3847 -> Seq Scan on t2 v2t2
3850 /*+Leading(t1 v2t1 v2t2)*/
3851 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3854 Leading(t1 v2t1 v2t2)
3860 -----------------------------------------------------
3862 Hash Cond: (t1.c1 = v2t1.c1)
3866 Merge Cond: (v2t1.c1 = v2t2.c1)
3867 -> Index Scan using t1_i1 on t1 v2t1
3870 -> Seq Scan on t2 v2t2
3873 Reset from_collapse_limit;
3875 Set from_collapse_limit = 3;
3876 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3878 -----------------------------------------------
3880 Merge Cond: (v2t1.c1 = v2t2.c1)
3882 Merge Cond: (t1.c1 = v2t1.c1)
3883 -> Index Scan using t1_i1 on t1
3884 -> Index Scan using t1_i1 on t1 v2t1
3887 -> Seq Scan on t2 v2t2
3890 /*+Leading(v2t1 v2t2 t1)*/
3891 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3894 Leading(v2t1 v2t2 t1)
3900 -----------------------------------------------------
3902 Hash Cond: (t1.c1 = v2t1.c1)
3906 Merge Cond: (v2t1.c1 = v2t2.c1)
3907 -> Index Scan using t1_i1 on t1 v2t1
3910 -> Seq Scan on t2 v2t2
3913 Reset from_collapse_limit;
3915 Set join_collapse_limit = 2;
3916 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3917 JOIN s1.t2 ON (t3.c1 = t2.c1)
3918 JOIN s1.t1 ON (t1.c1 = t3.c1);
3920 ------------------------------------------
3922 Hash Cond: (t1.c1 = t3.c1)
3926 Hash Cond: (t3.c1 = t2.c1)
3932 /*+Leading(t1 t2 t3)*/
3933 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3934 JOIN s1.t2 ON (t3.c1 = t2.c1)
3935 JOIN s1.t1 ON (t1.c1 = t3.c1);
3944 ------------------------------------------
3946 Hash Cond: (t1.c1 = t3.c1)
3950 Hash Cond: (t3.c1 = t2.c1)
3956 Reset join_collapse_limit;
3958 Set join_collapse_limit = 3;
3959 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3960 JOIN s1.t2 ON (t3.c1 = t2.c1)
3961 JOIN s1.t1 ON (t1.c1 = t3.c1);
3963 ------------------------------------------------
3965 Hash Cond: (t3.c1 = t2.c1)
3969 Merge Cond: (t1.c1 = t2.c1)
3970 -> Index Scan using t1_i1 on t1
3976 /*+Leading(t1 t2 t3)*/
3977 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3978 JOIN s1.t2 ON (t3.c1 = t2.c1)
3979 JOIN s1.t1 ON (t1.c1 = t3.c1);
3988 ------------------------------------------------
3990 Hash Cond: (t3.c1 = t2.c1)
3994 Merge Cond: (t1.c1 = t2.c1)
3995 -> Index Scan using t1_i1 on t1
4001 Reset join_collapse_limit;
4003 ---- No. L-3-3 join between parents or between children
4006 /*+Leading(t1 t2 t3)*/
4007 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4008 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4009 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4018 -------------------------------------------------
4020 Hash Cond: (t1.c1 = t3.c1)
4022 Hash Cond: (t1.c1 = t2.c1)
4024 -> Seq Scan on p2c1 t1
4025 -> Seq Scan on p2c1c1 t1_1
4026 -> Seq Scan on p2c1c2 t1_2
4029 -> Seq Scan on p2c2 t2
4030 -> Seq Scan on p2c2c1 t2_1
4031 -> Seq Scan on p2c2c2 t2_2
4034 -> Seq Scan on p2c3 t3
4035 -> Seq Scan on p2c3c1 t3_1
4036 -> Seq Scan on p2c3c2 t3_2
4040 /*+Leading(p2c1c1 p2c2c1 p2c3c1)*/
4041 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4042 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4043 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4047 Leading(p2c1c1 p2c2c1 p2c3c1)
4052 -------------------------------------------------
4054 Hash Cond: (t1.c1 = t3.c1)
4056 Hash Cond: (t1.c1 = t2.c1)
4058 -> Seq Scan on p2c1 t1
4059 -> Seq Scan on p2c1c1 t1_1
4060 -> Seq Scan on p2c1c2 t1_2
4063 -> Seq Scan on p2c2 t2
4064 -> Seq Scan on p2c2c1 t2_1
4065 -> Seq Scan on p2c2c2 t2_2
4068 -> Seq Scan on p2c3 t3
4069 -> Seq Scan on p2c3c1 t3_1
4070 -> Seq Scan on p2c3c2 t3_2
4074 ---- No. L-3-4 conflict leading hint
4077 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4078 JOIN s1.t2 ON (t1.c1 = t2.c1)
4079 JOIN s1.t3 ON (t1.c1 = t3.c1);
4081 ------------------------------------------
4083 Merge Cond: (t1.c1 = t2.c1)
4085 Merge Cond: (t1.c1 = t3.c1)
4086 -> Index Scan using t1_i1 on t1
4087 -> Index Scan using t3_i1 on t3
4093 /*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4094 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4095 JOIN s1.t2 ON (t1.c1 = t2.c1)
4096 JOIN s1.t3 ON (t1.c1 = t3.c1);
4097 INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4098 DETAIL: Conflict leading hint.
4108 ------------------------------------------------
4110 Hash Cond: (t3.c1 = t1.c1)
4114 Merge Cond: (t1.c1 = t2.c1)
4115 -> Index Scan using t1_i1 on t1
4122 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4123 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4124 JOIN s1.t2 ON (t1.c1 = t2.c1)
4125 JOIN s1.t3 ON (t1.c1 = t3.c1);
4126 INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
4127 DETAIL: Conflict leading hint.
4128 INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4129 DETAIL: Conflict leading hint.
4140 ------------------------------------------------
4142 Hash Cond: (t3.c1 = t1.c1)
4146 Merge Cond: (t1.c1 = t2.c1)
4147 -> Index Scan using t1_i1 on t1
4154 /*+Leading(t2 t3 t1)Leading()*/
4155 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4156 JOIN s1.t2 ON (t1.c1 = t2.c1)
4157 JOIN s1.t3 ON (t1.c1 = t3.c1);
4158 INFO: hint syntax error at or near "Leading()"
4159 DETAIL: Leading hint requires at least two relations.
4169 ------------------------------------------
4171 Merge Cond: (t1.c1 = t2.c1)
4172 -> Index Scan using t1_i1 on t1
4176 Hash Cond: (t3.c1 = t2.c1)
4183 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
4184 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4185 JOIN s1.t2 ON (t1.c1 = t2.c1)
4186 JOIN s1.t3 ON (t1.c1 = t3.c1);
4187 INFO: hint syntax error at or near "Leading()"
4188 DETAIL: Leading hint requires at least two relations.
4189 INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
4190 DETAIL: Conflict leading hint.
4201 ------------------------------------------
4203 Merge Cond: (t1.c1 = t2.c1)
4204 -> Index Scan using t1_i1 on t1
4208 Hash Cond: (t3.c1 = t2.c1)
4215 ---- No. L-3-5 hint state output
4219 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4220 JOIN s1.t2 ON (t1.c1 = t2.c1)
4221 JOIN s1.t3 ON (t1.c1 = t3.c1);
4222 INFO: hint syntax error at or near "Leading()"
4223 DETAIL: Leading hint requires at least two relations.
4232 ------------------------------------------
4234 Merge Cond: (t1.c1 = t2.c1)
4236 Merge Cond: (t1.c1 = t3.c1)
4237 -> Index Scan using t1_i1 on t1
4238 -> Index Scan using t3_i1 on t3
4246 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4247 JOIN s1.t2 ON (t1.c1 = t2.c1)
4248 JOIN s1.t3 ON (t1.c1 = t3.c1);
4249 INFO: hint syntax error at or near "Leading(t1)"
4250 DETAIL: Leading hint requires at least two relations.
4259 ------------------------------------------
4261 Merge Cond: (t1.c1 = t2.c1)
4263 Merge Cond: (t1.c1 = t3.c1)
4264 -> Index Scan using t1_i1 on t1
4265 -> Index Scan using t3_i1 on t3
4273 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4274 JOIN s1.t2 ON (t1.c1 = t2.c1)
4275 JOIN s1.t3 ON (t1.c1 = t3.c1);
4284 ------------------------------------------
4287 Merge Cond: (t1.c1 = t2.c1)
4288 -> Index Scan using t1_i1 on t1
4292 -> Index Scan using t3_i1 on t3
4293 Index Cond: (c1 = t1.c1)
4297 /*+Leading(t1 t2 t3)*/
4298 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4299 JOIN s1.t2 ON (t1.c1 = t2.c1)
4300 JOIN s1.t3 ON (t1.c1 = t3.c1);
4309 ------------------------------------------------
4311 Hash Cond: (t3.c1 = t1.c1)
4315 Merge Cond: (t1.c1 = t2.c1)
4316 -> Index Scan using t1_i1 on t1
4323 ---- No. L-3-6 specified Inner/Outer side
4327 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;
4328 INFO: hint syntax error at or near "Leading((t2))"
4329 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4338 ------------------------------------------------
4340 Merge Cond: (t1.c1 = t2.c1)
4342 Merge Cond: (t1.c1 = t4.c1)
4344 Merge Cond: (t1.c1 = t3.c1)
4345 -> Index Scan using t1_i1 on t1
4346 -> Index Scan using t3_i1 on t3
4347 -> Index Scan using t4_i1 on t4
4354 /*+Leading((t2 t3))*/
4355 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;
4364 ------------------------------------------------
4366 Join Filter: (t1.c1 = t4.c1)
4368 Join Filter: (t2.c1 = t1.c1)
4370 Merge Cond: (t2.c1 = t3.c1)
4371 -> Index Scan using t2_i1 on t2
4372 -> Index Scan using t3_i1 on t3
4373 -> Index Scan using t1_i1 on t1
4374 Index Cond: (c1 = t3.c1)
4375 -> Index Scan using t4_i1 on t4
4376 Index Cond: (c1 = t3.c1)
4380 /*+Leading((t2 t3 t4))*/
4381 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;
4382 INFO: hint syntax error at or near "Leading((t2 t3 t4))"
4383 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4392 ------------------------------------------------
4394 Merge Cond: (t1.c1 = t2.c1)
4396 Merge Cond: (t1.c1 = t4.c1)
4398 Merge Cond: (t1.c1 = t3.c1)
4399 -> Index Scan using t1_i1 on t1
4400 -> Index Scan using t3_i1 on t3
4401 -> Index Scan using t4_i1 on t4
4408 /*+Leading(((t1 t2) (t3 t4)))*/
4409 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;
4412 Leading(((t1 t2) (t3 t4)))
4418 ------------------------------------------
4420 Hash Cond: (t1.c1 = t3.c1)
4422 Merge Cond: (t1.c1 = t2.c1)
4423 -> Index Scan using t1_i1 on t1
4429 Hash Cond: (t3.c1 = t4.c1)
4436 /*+Leading((((t1 t3) t4) t2)))*/
4437 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;
4438 INFO: hint syntax error at or near ")"
4439 DETAIL: Unrecognized hint keyword ")".
4442 Leading((((t1 t3) t4) t2))
4448 ------------------------------------------------
4450 Merge Cond: (t1.c1 = t2.c1)
4452 Merge Cond: (t1.c1 = t4.c1)
4454 Merge Cond: (t1.c1 = t3.c1)
4455 -> Index Scan using t1_i1 on t1
4456 -> Index Scan using t3_i1 on t3
4457 -> Index Scan using t4_i1 on t4
4464 /*+Leading((t1 (t3 (t4 t2))))*/
4465 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;
4468 Leading((t1 (t3 (t4 t2))))
4474 ------------------------------------------------------
4476 Merge Cond: (t1.c1 = t2.c1)
4477 -> Index Scan using t1_i1 on t1
4481 Hash Cond: (t3.c1 = t2.c1)
4485 Hash Cond: (t4.c1 = t2.c1)