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 Join Filter: (t1.c1 = t4.c1)
12 Merge Cond: (t1.c1 = t2.c1)
14 Merge Cond: (t1.c1 = t3.c1)
15 -> Index Scan using t1_i1 on t1
16 -> Index Scan using t3_i1 on t3
20 -> Index Scan using t4_i1 on t4
21 Index Cond: (c1 = t3.c1)
25 ---- No. L-1-1 specified pattern of the object name
28 /*+Leading(t4 t2 t3 t1)*/
29 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;
38 ------------------------------------------------
40 Merge Cond: (t1.c1 = t2.c1)
41 -> Index Scan using t1_i1 on t1
45 Join Filter: (t2.c1 = t3.c1)
47 Hash Cond: (t4.c1 = t2.c1)
51 -> Index Scan using t3_i1 on t3
52 Index Cond: (c1 = t4.c1)
56 /*+Leading(t4 t2 t3 t1)*/
57 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;
66 ----------------------------------------------------
68 Join Filter: (t_1.c1 = t_4.c1)
70 Merge Cond: (t_1.c1 = t_2.c1)
72 Merge Cond: (t_1.c1 = t_3.c1)
73 -> Index Scan using t1_i1 on t1 t_1
74 -> Index Scan using t3_i1 on t3 t_3
78 -> Index Scan using t4_i1 on t4 t_4
79 Index Cond: (c1 = t_3.c1)
83 /*+Leading(t_4 t_2 t_3 t_1)*/
84 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;
87 Leading(t_4 t_2 t_3 t_1)
93 ----------------------------------------------------
95 Merge Cond: (t_1.c1 = t_2.c1)
96 -> Index Scan using t1_i1 on t1 t_1
100 Join Filter: (t_2.c1 = t_3.c1)
102 Hash Cond: (t_4.c1 = t_2.c1)
103 -> Seq Scan on t4 t_4
105 -> Seq Scan on t2 t_2
106 -> Index Scan using t3_i1 on t3 t_3
107 Index Cond: (c1 = t_4.c1)
111 ---- No. L-1-2 specified schema name in the hint option
114 /*+Leading(t4 t2 t3 t1)*/
115 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;
124 ------------------------------------------------
126 Merge Cond: (t1.c1 = t2.c1)
127 -> Index Scan using t1_i1 on t1
131 Join Filter: (t2.c1 = t3.c1)
133 Hash Cond: (t4.c1 = t2.c1)
137 -> Index Scan using t3_i1 on t3
138 Index Cond: (c1 = t4.c1)
142 /*+Leading(s1.t4 s1.t2 s1.t3 s1.t1)*/
143 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;
147 Leading(s1.t4 s1.t2 s1.t3 s1.t1)
152 ------------------------------------------------
154 Join Filter: (t1.c1 = t4.c1)
156 Merge Cond: (t1.c1 = t2.c1)
158 Merge Cond: (t1.c1 = t3.c1)
159 -> Index Scan using t1_i1 on t1
160 -> Index Scan using t3_i1 on t3
164 -> Index Scan using t4_i1 on t4
165 Index Cond: (c1 = t3.c1)
169 ---- No. L-1-3 table doesn't exist in the hint option
172 /*+Leading(t4 t2 t3 t1)*/
173 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;
182 ------------------------------------------------
184 Merge Cond: (t1.c1 = t2.c1)
185 -> Index Scan using t1_i1 on t1
189 Join Filter: (t2.c1 = t3.c1)
191 Hash Cond: (t4.c1 = t2.c1)
195 -> Index Scan using t3_i1 on t3
196 Index Cond: (c1 = t4.c1)
200 /*+Leading(t5 t2 t3 t1)*/
201 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;
210 ------------------------------------------------
212 Join Filter: (t1.c1 = t4.c1)
214 Merge Cond: (t1.c1 = t2.c1)
216 Merge Cond: (t1.c1 = t3.c1)
217 -> Index Scan using t1_i1 on t1
218 -> Index Scan using t3_i1 on t3
222 -> Index Scan using t4_i1 on t4
223 Index Cond: (c1 = t3.c1)
227 ---- No. L-1-4 conflict table name
230 /*+Leading(t4 t2 t3 t1)*/
231 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;
240 ------------------------------------------------
242 Merge Cond: (t1.c1 = t2.c1)
243 -> Index Scan using t1_i1 on t1
247 Join Filter: (t2.c1 = t3.c1)
249 Hash Cond: (t4.c1 = t2.c1)
253 -> Index Scan using t3_i1 on t3
254 Index Cond: (c1 = t4.c1)
258 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;
260 ------------------------------------------------
262 Merge Cond: (t1.c1 = t1_1.c1)
264 Merge Cond: (t1.c1 = t2.c1)
266 Merge Cond: (t1.c1 = t3.c1)
267 -> Index Scan using t1_i1 on t1
268 -> Index Scan using t3_i1 on t3
274 -> Seq Scan on t1 t1_1
277 /*+Leading(t1 t2 t3 t1)*/
278 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;
279 INFO: hint syntax error at or near "Leading(t1 t2 t3 t1)"
280 DETAIL: Relation name "t1" is ambiguous.
289 ------------------------------------------------
291 Merge Cond: (t1.c1 = t1_1.c1)
293 Merge Cond: (t1.c1 = t2.c1)
295 Merge Cond: (t1.c1 = t3.c1)
296 -> Index Scan using t1_i1 on t1
297 -> Index Scan using t3_i1 on t3
303 -> Seq Scan on t1 t1_1
306 /*+Leading(s1.t1 t2 t3 s2.t1)*/
307 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;
311 Leading(s1.t1 t2 t3 s2.t1)
316 ------------------------------------------------
318 Merge Cond: (t1.c1 = t1_1.c1)
320 Merge Cond: (t1.c1 = t2.c1)
322 Merge Cond: (t1.c1 = t3.c1)
323 -> Index Scan using t1_i1 on t1
324 -> Index Scan using t3_i1 on t3
330 -> Seq Scan on t1 t1_1
333 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;
335 ------------------------------------------------
337 Merge Cond: (t1.c1 = s2t1.c1)
339 Merge Cond: (t1.c1 = t2.c1)
341 Merge Cond: (t1.c1 = t3.c1)
342 -> Index Scan using t1_i1 on t1
343 -> Index Scan using t3_i1 on t3
349 -> Seq Scan on t1 s2t1
352 /*+Leading(s2t1 t1 t3 t2)*/
353 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;
356 Leading(s2t1 t1 t3 t2)
362 ------------------------------------------------
364 Merge Cond: (t1.c1 = t2.c1)
367 Merge Cond: (t1.c1 = s2t1.c1)
368 -> Index Scan using t1_i1 on t1
371 -> Seq Scan on t1 s2t1
372 -> Index Scan using t3_i1 on t3
373 Index Cond: (c1 = t1.c1)
380 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;
382 ------------------------------------------------------------------------
384 Join Filter: (t1.c1 = t4.c1)
385 InitPlan 1 (returns $1)
388 Join Filter: (t1_1.c1 = t4_1.c1)
390 Merge Cond: (t1_1.c1 = t2_1.c1)
392 Merge Cond: (t1_1.c1 = t3_1.c1)
393 -> Index Only Scan using t1_i1 on t1 t1_1
394 -> Index Only Scan using t3_i1 on t3 t3_1
397 -> Seq Scan on t2 t2_1
398 -> Index Only Scan using t4_i1 on t4 t4_1
399 Index Cond: (c1 = t3_1.c1)
401 Merge Cond: (t1.c1 = t2.c1)
403 Merge Cond: (t1.c1 = t3.c1)
404 -> Index Scan using t1_i1 on t1
405 -> Index Scan using t3_i1 on t3
409 -> Index Scan using t4_i1 on t4
410 Index Cond: (c1 = t3.c1)
413 /*+Leading(t4 t2 t3 t1)*/
414 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;
423 ------------------------------------------------------------------------
425 Merge Cond: (t1.c1 = t2.c1)
426 InitPlan 1 (returns $1)
429 Merge Cond: (t1_1.c1 = t2_1.c1)
430 -> Index Only Scan using t1_i1 on t1 t1_1
434 Join Filter: (t2_1.c1 = t3_1.c1)
436 Hash Cond: (t4_1.c1 = t2_1.c1)
437 -> Seq Scan on t4 t4_1
439 -> Seq Scan on t2 t2_1
440 -> Index Only Scan using t3_i1 on t3 t3_1
441 Index Cond: (c1 = t4_1.c1)
442 -> Index Scan using t1_i1 on t1
446 Join Filter: (t2.c1 = t3.c1)
448 Hash Cond: (t4.c1 = t2.c1)
452 -> Index Scan using t3_i1 on t3
453 Index Cond: (c1 = t4.c1)
456 /*+Leading(st1 st2 st3 st4)Leading(t4 t2 t3 t1)*/
457 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;
460 Leading(st1 st2 st3 st4)
467 --------------------------------------------------------------------------------------------
469 Merge Cond: (t1.c1 = t2.c1)
470 -> Index Scan using t1_i1 on t1
474 Join Filter: (t2.c1 = t3.c1)
476 Hash Cond: (t4.c1 = t2.c1)
480 -> Index Scan using t3_i1 on t3
481 Index Cond: (c1 = t4.c1)
485 One-Time Filter: ((t1.c1 = t2.c1) AND (t1.c1 = t3.c1) AND (t1.c1 = t4.c1))
489 -> Seq Scan on t1 st1
491 -> Seq Scan on t2 st2
493 -> Seq Scan on t3 st3
495 -> Seq Scan on t4 st4
499 ---- No. L-1-5 conflict table name
502 /*+Leading(t4 t2 t3 t1)*/
503 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;
512 ------------------------------------------------
514 Merge Cond: (t1.c1 = t2.c1)
515 -> Index Scan using t1_i1 on t1
519 Join Filter: (t2.c1 = t3.c1)
521 Hash Cond: (t4.c1 = t2.c1)
525 -> Index Scan using t3_i1 on t3
526 Index Cond: (c1 = t4.c1)
530 /*+Leading(t4 t2 t3 t1 t4)*/
531 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;
532 INFO: hint syntax error at or near "Leading(t4 t2 t3 t1 t4)"
533 DETAIL: Relation name "t4" is duplicated.
539 Leading(t4 t2 t3 t1 t4)
542 ------------------------------------------------
544 Join Filter: (t1.c1 = t4.c1)
546 Merge Cond: (t1.c1 = t2.c1)
548 Merge Cond: (t1.c1 = t3.c1)
549 -> Index Scan using t1_i1 on t1
550 -> Index Scan using t3_i1 on t3
554 -> Index Scan using t4_i1 on t4
555 Index Cond: (c1 = t3.c1)
558 /*+Leading(t4 t2 t3 t4)*/
559 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;
560 INFO: hint syntax error at or near "Leading(t4 t2 t3 t4)"
561 DETAIL: Relation name "t4" is duplicated.
570 ------------------------------------------------
572 Join Filter: (t1.c1 = t4.c1)
574 Merge Cond: (t1.c1 = t2.c1)
576 Merge Cond: (t1.c1 = t3.c1)
577 -> Index Scan using t1_i1 on t1
578 -> Index Scan using t3_i1 on t3
582 -> Index Scan using t4_i1 on t4
583 Index Cond: (c1 = t3.c1)
587 /*+Leading(t4 t2 t3 t1 t4 t2 t3 t1)*/
588 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;
589 INFO: hint syntax error at or near "Leading(t4 t2 t3 t1 t4 t2 t3 t1)"
590 DETAIL: Relation name "t4" is duplicated.
596 Leading(t4 t2 t3 t1 t4 t2 t3 t1)
599 ------------------------------------------------
601 Join Filter: (t1.c1 = t4.c1)
603 Merge Cond: (t1.c1 = t2.c1)
605 Merge Cond: (t1.c1 = t3.c1)
606 -> Index Scan using t1_i1 on t1
607 -> Index Scan using t3_i1 on t3
611 -> Index Scan using t4_i1 on t4
612 Index Cond: (c1 = t3.c1)
615 /*+Leading(t4 t2 t2 t4)*/
616 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;
617 INFO: hint syntax error at or near "Leading(t4 t2 t2 t4)"
618 DETAIL: Relation name "t2" is duplicated.
627 ------------------------------------------------
629 Join Filter: (t1.c1 = t4.c1)
631 Merge Cond: (t1.c1 = t2.c1)
633 Merge Cond: (t1.c1 = t3.c1)
634 -> Index Scan using t1_i1 on t1
635 -> Index Scan using t3_i1 on t3
639 -> Index Scan using t4_i1 on t4
640 Index Cond: (c1 = t3.c1)
644 ---- No. L-1-6 object type for the hint
647 /*+Leading(t4 t2 t3 t1)*/
648 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;
657 ------------------------------------------------
659 Merge Cond: (t1.c1 = t2.c1)
660 -> Index Scan using t1_i1 on t1
664 Join Filter: (t2.c1 = t3.c1)
666 Hash Cond: (t4.c1 = t2.c1)
670 -> Index Scan using t3_i1 on t3
671 Index Cond: (c1 = t4.c1)
675 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;
677 -----------------------------------------------------
679 Hash Cond: (t1.c1 = t4.c1)
681 Hash Cond: (t1.c1 = t3.c1)
683 Hash Cond: (t1.c1 = t2.c1)
686 -> Seq Scan on p1c1 t1_1
687 -> Seq Scan on p1c2 t1_2
688 -> Seq Scan on p1c3 t1_3
692 -> Seq Scan on p1c1 t2_1
693 -> Seq Scan on p1c2 t2_2
694 -> Seq Scan on p1c3 t2_3
698 -> Seq Scan on p1c1 t3_1
699 -> Seq Scan on p1c2 t3_2
700 -> Seq Scan on p1c3 t3_3
704 -> Seq Scan on p1c1 t4_1
705 -> Seq Scan on p1c2 t4_2
706 -> Seq Scan on p1c3 t4_3
709 /*+Leading(t4 t3 t2 t1)*/
710 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;
719 -----------------------------------------------------
721 Hash Cond: (t2.c1 = t1.c1)
723 Hash Cond: (t3.c1 = t2.c1)
725 Hash Cond: (t3.c1 = t4.c1)
728 -> Seq Scan on p1c1 t3_1
729 -> Seq Scan on p1c2 t3_2
730 -> Seq Scan on p1c3 t3_3
734 -> Seq Scan on p1c1 t4_1
735 -> Seq Scan on p1c2 t4_2
736 -> Seq Scan on p1c3 t4_3
740 -> Seq Scan on p1c1 t2_1
741 -> Seq Scan on p1c2 t2_2
742 -> Seq Scan on p1c3 t2_3
746 -> Seq Scan on p1c1 t1_1
747 -> Seq Scan on p1c2 t1_2
748 -> Seq Scan on p1c3 t1_3
752 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;
754 --------------------------------------------
756 Hash Cond: (t1.c1 = t4.c1)
758 Hash Cond: (t1.c1 = t3.c1)
760 Hash Cond: (t1.c1 = t2.c1)
761 -> Seq Scan on ul1 t1
763 -> Seq Scan on ul1 t2
765 -> Seq Scan on ul1 t3
767 -> Seq Scan on ul1 t4
770 /*+Leading(t4 t3 t2 t1)*/
771 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;
780 --------------------------------------------
782 Hash Cond: (t2.c1 = t1.c1)
784 Hash Cond: (t3.c1 = t2.c1)
786 Hash Cond: (t3.c1 = t4.c1)
787 -> Seq Scan on ul1 t3
789 -> Seq Scan on ul1 t4
791 -> Seq Scan on ul1 t2
793 -> Seq Scan on ul1 t1
797 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
798 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2, tm1 t3, tm1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
800 --------------------------------------------
802 Hash Cond: (t1.c1 = t4.c1)
804 Hash Cond: (t1.c1 = t3.c1)
806 Hash Cond: (t1.c1 = t2.c1)
807 -> Seq Scan on tm1 t1
809 -> Seq Scan on tm1 t2
811 -> Seq Scan on tm1 t3
813 -> Seq Scan on tm1 t4
816 /*+Leading(t4 t3 t2 t1)*/
817 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;
826 --------------------------------------------
828 Hash Cond: (t2.c1 = t1.c1)
830 Hash Cond: (t3.c1 = t2.c1)
832 Hash Cond: (t3.c1 = t4.c1)
833 -> Seq Scan on tm1 t3
835 -> Seq Scan on tm1 t4
837 -> Seq Scan on tm1 t2
839 -> Seq Scan on tm1 t1
843 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2, pg_catalog.pg_class t3, pg_catalog.pg_class t4 WHERE t1.oid = t2.oid AND t1.oid = t3.oid AND t1.oid = t4.oid;
845 -------------------------------------------------
847 Hash Cond: (t1.oid = t4.oid)
849 Hash Cond: (t1.oid = t3.oid)
851 Hash Cond: (t1.oid = t2.oid)
852 -> Seq Scan on pg_class t1
854 -> Seq Scan on pg_class t2
856 -> Seq Scan on pg_class t3
858 -> Seq Scan on pg_class t4
861 /*+Leading(t4 t3 t2 t1)*/
862 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;
871 -------------------------------------------------
873 Hash Cond: (t2.oid = t1.oid)
875 Hash Cond: (t3.oid = t2.oid)
877 Hash Cond: (t3.oid = t4.oid)
878 -> Seq Scan on pg_class t3
880 -> Seq Scan on pg_class t4
882 -> Seq Scan on pg_class t2
884 -> Seq Scan on pg_class t1
890 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;
892 --------------------------------------------
894 Join Filter: (t1.c1 = t4.c1)
896 Join Filter: (t1.c1 = t3.c1)
898 Join Filter: (t1.c1 = t2.c1)
899 -> Function Scan on f1 t1
900 -> Function Scan on f1 t2
901 -> Function Scan on f1 t3
902 -> Function Scan on f1 t4
905 /*+Leading(t4 t3 t2 t1)*/
906 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;
915 --------------------------------------------
917 Join Filter: (t2.c1 = t1.c1)
919 Join Filter: (t3.c1 = t2.c1)
921 Join Filter: (t3.c1 = t4.c1)
922 -> Function Scan on f1 t3
923 -> Function Scan on f1 t4
924 -> Function Scan on f1 t2
925 -> Function Scan on f1 t1
929 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
931 -------------------------------------------------------
933 Join Filter: ("*VALUES*".column1 = t4.c1)
935 Join Filter: ("*VALUES*".column1 = t3.c1)
937 Hash Cond: (t2.c1 = "*VALUES*".column1)
940 -> Values Scan on "*VALUES*"
941 -> Index Scan using t3_i1 on t3
942 Index Cond: (c1 = t2.c1)
943 -> Index Scan using t4_i1 on t4
944 Index Cond: (c1 = t3.c1)
947 /*+Leading(t4 t3 t2 t1)*/
948 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;
957 -------------------------------------------------------
959 Join Filter: ("*VALUES*".column1 = t4.c1)
961 Join Filter: ("*VALUES*".column1 = t3.c1)
963 Hash Cond: (t2.c1 = "*VALUES*".column1)
966 -> Values Scan on "*VALUES*"
967 -> Index Scan using t3_i1 on t3
968 Index Cond: (c1 = t2.c1)
969 -> Index Scan using t4_i1 on t4
970 Index Cond: (c1 = t3.c1)
974 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;
976 ----------------------------------------------------
978 Merge Cond: (ct1.c1 = ct3.c1)
981 Hash Cond: (st1.c1 = st4.c1)
983 Hash Cond: (st1.c1 = st3.c1)
985 Hash Cond: (st1.c1 = st2.c1)
986 -> Seq Scan on t1 st1
988 -> Seq Scan on t1 st2
990 -> Seq Scan on t1 st3
992 -> Seq Scan on t1 st4
994 Merge Cond: (ct1.c1 = ct2.c1)
997 -> CTE Scan on c1 ct1
1000 -> CTE Scan on c1 ct2
1003 Merge Cond: (ct3.c1 = ct4.c1)
1006 -> CTE Scan on c1 ct3
1009 -> CTE Scan on c1 ct4
1012 /*+Leading(ct4 ct3 ct2 ct1)Leading(st4 st3 st2 st1)*/
1013 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;
1016 Leading(ct4 ct3 ct2 ct1)
1017 Leading(st4 st3 st2 st1)
1023 ---------------------------------------------------------
1025 Merge Cond: (ct1.c1 = ct2.c1)
1028 Hash Cond: (st2.c1 = st1.c1)
1030 Hash Cond: (st3.c1 = st2.c1)
1032 Hash Cond: (st3.c1 = st4.c1)
1033 -> Seq Scan on t1 st3
1035 -> Seq Scan on t1 st4
1037 -> Seq Scan on t1 st2
1039 -> Seq Scan on t1 st1
1042 -> CTE Scan on c1 ct1
1045 Merge Cond: (ct2.c1 = ct3.c1)
1048 -> CTE Scan on c1 ct2
1051 Merge Cond: (ct3.c1 = ct4.c1)
1054 -> CTE Scan on c1 ct3
1057 -> CTE Scan on c1 ct4
1061 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2, s1.v1 t3, s1.v1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
1063 ------------------------------------------------
1065 Hash Cond: (v1t1.c1 = v1t1_3.c1)
1067 Hash Cond: (v1t1.c1 = v1t1_2.c1)
1069 Hash Cond: (v1t1.c1 = v1t1_1.c1)
1070 -> Seq Scan on t1 v1t1
1072 -> Seq Scan on t1 v1t1_1
1074 -> Seq Scan on t1 v1t1_2
1076 -> Seq Scan on t1 v1t1_3
1079 /*+Leading(t4 t3 t2 t1)*/
1080 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;
1084 Leading(t4 t3 t2 t1)
1089 ------------------------------------------------
1091 Hash Cond: (v1t1.c1 = v1t1_3.c1)
1093 Hash Cond: (v1t1.c1 = v1t1_2.c1)
1095 Hash Cond: (v1t1.c1 = v1t1_1.c1)
1096 -> Seq Scan on t1 v1t1
1098 -> Seq Scan on t1 v1t1_1
1100 -> Seq Scan on t1 v1t1_2
1102 -> Seq Scan on t1 v1t1_3
1105 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
1107 ---------------------------------------------
1109 Hash Cond: (v1t1.c1 = t4.c1)
1111 Hash Cond: (v1t1.c1 = v1t1_.c1)
1113 Hash Cond: (t3.c1 = v1t1.c1)
1116 -> Seq Scan on t1 v1t1
1118 -> Seq Scan on t1 v1t1_
1123 /*+Leading(t4 v1t1_ v1t1 t3)*/
1124 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;
1127 Leading(t4 v1t1_ v1t1 t3)
1133 ----------------------------------------------
1135 Hash Cond: (v1t1.c1 = t3.c1)
1137 Hash Cond: (v1t1_.c1 = v1t1.c1)
1139 Hash Cond: (t4.c1 = v1t1_.c1)
1142 -> Seq Scan on t1 v1t1_
1144 -> Seq Scan on t1 v1t1
1150 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 ------------------------------------------------
1154 Join Filter: (t1.c1 = t4.c1)
1156 Merge Cond: (t1.c1 = t2.c1)
1158 Merge Cond: (t1.c1 = t3.c1)
1159 -> Index Scan using t1_i1 on t1
1160 -> Index Scan using t3_i1 on t3
1164 -> Index Only Scan using t4_i1 on t4
1165 Index Cond: (c1 = t3.c1)
1168 /*+Leading(st4 t2 t3 t1)*/
1169 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, (SELECT t4.c1 FROM s1.t4) st4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = st4.c1;
1173 Leading(st4 t2 t3 t1)
1178 ------------------------------------------------
1180 Join Filter: (t1.c1 = t4.c1)
1182 Merge Cond: (t1.c1 = t2.c1)
1184 Merge Cond: (t1.c1 = t3.c1)
1185 -> Index Scan using t1_i1 on t1
1186 -> Index Scan using t3_i1 on t3
1190 -> Index Only Scan using t4_i1 on t4
1191 Index Cond: (c1 = t3.c1)
1194 /*+Leading(t4 t2 t3 t1)*/
1195 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;
1198 Leading(t4 t2 t3 t1)
1204 ------------------------------------------------
1206 Merge Cond: (t1.c1 = t2.c1)
1207 -> Index Scan using t1_i1 on t1
1211 Join Filter: (t2.c1 = t3.c1)
1213 Hash Cond: (t4.c1 = t2.c1)
1217 -> Index Scan using t3_i1 on t3
1218 Index Cond: (c1 = t4.c1)
1222 ---- No. L-2-1 some complexity query blocks
1225 EXPLAIN (COSTS false)
1226 SELECT max(bmt1.c1), (
1227 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)'
1229 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)'
1231 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)'
1234 -------------------------------------------------------------------
1236 InitPlan 1 (returns $0)
1239 Join Filter: (b1t1.c1 = b1t4.c1)
1241 Join Filter: (b1t1.c1 = b1t3.c1)
1243 Join Filter: (b1t1.c1 = b1t2.c1)
1244 -> Tid Scan on t1 b1t1
1245 TID Cond: (ctid = '(1,1)'::tid)
1246 -> Seq Scan on t2 b1t2
1247 Filter: (ctid = '(1,1)'::tid)
1248 -> Tid Scan on t3 b1t3
1249 TID Cond: (ctid = '(1,1)'::tid)
1250 -> Tid Scan on t4 b1t4
1251 TID Cond: (ctid = '(1,1)'::tid)
1252 InitPlan 2 (returns $1)
1255 Join Filter: (b2t1.c1 = b2t4.c1)
1257 Join Filter: (b2t1.c1 = b2t3.c1)
1259 Join Filter: (b2t1.c1 = b2t2.c1)
1260 -> Tid Scan on t1 b2t1
1261 TID Cond: (ctid = '(1,1)'::tid)
1262 -> Seq Scan on t2 b2t2
1263 Filter: (ctid = '(1,1)'::tid)
1264 -> Tid Scan on t3 b2t3
1265 TID Cond: (ctid = '(1,1)'::tid)
1266 -> Tid Scan on t4 b2t4
1267 TID Cond: (ctid = '(1,1)'::tid)
1269 Join Filter: (bmt1.c1 = bmt4.c1)
1271 Join Filter: (bmt1.c1 = bmt3.c1)
1273 Join Filter: (bmt1.c1 = bmt2.c1)
1274 -> Tid Scan on t1 bmt1
1275 TID Cond: (ctid = '(1,1)'::tid)
1276 -> Seq Scan on t2 bmt2
1277 Filter: (ctid = '(1,1)'::tid)
1278 -> Tid Scan on t3 bmt3
1279 TID Cond: (ctid = '(1,1)'::tid)
1280 -> Tid Scan on t4 bmt4
1281 TID Cond: (ctid = '(1,1)'::tid)
1285 Leading(bmt1 bmt2 bmt3 bmt4)
1286 Leading(b1t2 b1t3 b1t4 b1t1)
1287 Leading(b2t3 b2t4 b2t1 b2t2)
1289 EXPLAIN (COSTS false)
1290 SELECT max(bmt1.c1), (
1291 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)'
1293 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)'
1295 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)'
1299 Leading(bmt1 bmt2 bmt3 bmt4)
1300 Leading(b1t2 b1t3 b1t4 b1t1)
1301 Leading(b2t3 b2t4 b2t1 b2t2)
1307 -------------------------------------------------------------------
1309 InitPlan 1 (returns $0)
1312 Join Filter: (b1t2.c1 = b1t1.c1)
1314 Join Filter: (b1t2.c1 = b1t4.c1)
1316 Join Filter: (b1t2.c1 = b1t3.c1)
1317 -> Seq Scan on t2 b1t2
1318 Filter: (ctid = '(1,1)'::tid)
1319 -> Tid Scan on t3 b1t3
1320 TID Cond: (ctid = '(1,1)'::tid)
1321 -> Tid Scan on t4 b1t4
1322 TID Cond: (ctid = '(1,1)'::tid)
1323 -> Tid Scan on t1 b1t1
1324 TID Cond: (ctid = '(1,1)'::tid)
1325 InitPlan 2 (returns $1)
1328 Join Filter: (b2t1.c1 = b2t2.c1)
1330 Join Filter: (b2t3.c1 = b2t1.c1)
1332 Join Filter: (b2t3.c1 = b2t4.c1)
1333 -> Tid Scan on t3 b2t3
1334 TID Cond: (ctid = '(1,1)'::tid)
1335 -> Tid Scan on t4 b2t4
1336 TID Cond: (ctid = '(1,1)'::tid)
1337 -> Tid Scan on t1 b2t1
1338 TID Cond: (ctid = '(1,1)'::tid)
1339 -> Seq Scan on t2 b2t2
1340 Filter: (ctid = '(1,1)'::tid)
1342 Join Filter: (bmt1.c1 = bmt4.c1)
1344 Join Filter: (bmt1.c1 = bmt3.c1)
1346 Join Filter: (bmt1.c1 = bmt2.c1)
1347 -> Tid Scan on t1 bmt1
1348 TID Cond: (ctid = '(1,1)'::tid)
1349 -> Seq Scan on t2 bmt2
1350 Filter: (ctid = '(1,1)'::tid)
1351 -> Tid Scan on t3 bmt3
1352 TID Cond: (ctid = '(1,1)'::tid)
1353 -> Tid Scan on t4 bmt4
1354 TID Cond: (ctid = '(1,1)'::tid)
1358 EXPLAIN (COSTS false)
1359 SELECT max(bmt1.c1), (
1360 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)'
1362 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)'
1364 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)'
1366 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)'
1369 -------------------------------------------------------------------
1371 InitPlan 1 (returns $0)
1374 Join Filter: (b1t1.c1 = b1t4.c1)
1376 Join Filter: (b1t1.c1 = b1t3.c1)
1378 Join Filter: (b1t1.c1 = b1t2.c1)
1379 -> Tid Scan on t1 b1t1
1380 TID Cond: (ctid = '(1,1)'::tid)
1381 -> Seq Scan on t2 b1t2
1382 Filter: (ctid = '(1,1)'::tid)
1383 -> Tid Scan on t3 b1t3
1384 TID Cond: (ctid = '(1,1)'::tid)
1385 -> Tid Scan on t4 b1t4
1386 TID Cond: (ctid = '(1,1)'::tid)
1387 InitPlan 2 (returns $1)
1390 Join Filter: (b2t1.c1 = b2t4.c1)
1392 Join Filter: (b2t1.c1 = b2t3.c1)
1394 Join Filter: (b2t1.c1 = b2t2.c1)
1395 -> Tid Scan on t1 b2t1
1396 TID Cond: (ctid = '(1,1)'::tid)
1397 -> Seq Scan on t2 b2t2
1398 Filter: (ctid = '(1,1)'::tid)
1399 -> Tid Scan on t3 b2t3
1400 TID Cond: (ctid = '(1,1)'::tid)
1401 -> Tid Scan on t4 b2t4
1402 TID Cond: (ctid = '(1,1)'::tid)
1403 InitPlan 3 (returns $2)
1406 Join Filter: (b3t1.c1 = b3t4.c1)
1408 Join Filter: (b3t1.c1 = b3t3.c1)
1410 Join Filter: (b3t1.c1 = b3t2.c1)
1411 -> Tid Scan on t1 b3t1
1412 TID Cond: (ctid = '(1,1)'::tid)
1413 -> Seq Scan on t2 b3t2
1414 Filter: (ctid = '(1,1)'::tid)
1415 -> Tid Scan on t3 b3t3
1416 TID Cond: (ctid = '(1,1)'::tid)
1417 -> Tid Scan on t4 b3t4
1418 TID Cond: (ctid = '(1,1)'::tid)
1420 Join Filter: (bmt1.c1 = bmt4.c1)
1422 Join Filter: (bmt1.c1 = bmt3.c1)
1424 Join Filter: (bmt1.c1 = bmt2.c1)
1425 -> Tid Scan on t1 bmt1
1426 TID Cond: (ctid = '(1,1)'::tid)
1427 -> Seq Scan on t2 bmt2
1428 Filter: (ctid = '(1,1)'::tid)
1429 -> Tid Scan on t3 bmt3
1430 TID Cond: (ctid = '(1,1)'::tid)
1431 -> Tid Scan on t4 bmt4
1432 TID Cond: (ctid = '(1,1)'::tid)
1436 Leading(bmt1 bmt2 bmt3 bmt4)
1437 Leading(b1t2 b1t3 b1t4 b1t1)
1438 Leading(b2t3 b2t4 b2t1 b2t2)
1439 Leading(b3t4 b3t1 b3t2 b3t3)
1441 EXPLAIN (COSTS false)
1442 SELECT max(bmt1.c1), (
1443 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)'
1445 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)'
1447 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)'
1449 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)'
1453 Leading(bmt1 bmt2 bmt3 bmt4)
1454 Leading(b1t2 b1t3 b1t4 b1t1)
1455 Leading(b2t3 b2t4 b2t1 b2t2)
1456 Leading(b3t4 b3t1 b3t2 b3t3)
1462 -------------------------------------------------------------------
1464 InitPlan 1 (returns $0)
1467 Join Filter: (b1t2.c1 = b1t1.c1)
1469 Join Filter: (b1t2.c1 = b1t4.c1)
1471 Join Filter: (b1t2.c1 = b1t3.c1)
1472 -> Seq Scan on t2 b1t2
1473 Filter: (ctid = '(1,1)'::tid)
1474 -> Tid Scan on t3 b1t3
1475 TID Cond: (ctid = '(1,1)'::tid)
1476 -> Tid Scan on t4 b1t4
1477 TID Cond: (ctid = '(1,1)'::tid)
1478 -> Tid Scan on t1 b1t1
1479 TID Cond: (ctid = '(1,1)'::tid)
1480 InitPlan 2 (returns $1)
1483 Join Filter: (b2t1.c1 = b2t2.c1)
1485 Join Filter: (b2t3.c1 = b2t1.c1)
1487 Join Filter: (b2t3.c1 = b2t4.c1)
1488 -> Tid Scan on t3 b2t3
1489 TID Cond: (ctid = '(1,1)'::tid)
1490 -> Tid Scan on t4 b2t4
1491 TID Cond: (ctid = '(1,1)'::tid)
1492 -> Tid Scan on t1 b2t1
1493 TID Cond: (ctid = '(1,1)'::tid)
1494 -> Seq Scan on t2 b2t2
1495 Filter: (ctid = '(1,1)'::tid)
1496 InitPlan 3 (returns $2)
1499 Join Filter: (b3t1.c1 = b3t3.c1)
1501 Join Filter: (b3t1.c1 = b3t2.c1)
1503 Join Filter: (b3t1.c1 = b3t4.c1)
1504 -> Tid Scan on t1 b3t1
1505 TID Cond: (ctid = '(1,1)'::tid)
1506 -> Tid Scan on t4 b3t4
1507 TID Cond: (ctid = '(1,1)'::tid)
1508 -> Seq Scan on t2 b3t2
1509 Filter: (ctid = '(1,1)'::tid)
1510 -> Tid Scan on t3 b3t3
1511 TID Cond: (ctid = '(1,1)'::tid)
1513 Join Filter: (bmt1.c1 = bmt4.c1)
1515 Join Filter: (bmt1.c1 = bmt3.c1)
1517 Join Filter: (bmt1.c1 = bmt2.c1)
1518 -> Tid Scan on t1 bmt1
1519 TID Cond: (ctid = '(1,1)'::tid)
1520 -> Seq Scan on t2 bmt2
1521 Filter: (ctid = '(1,1)'::tid)
1522 -> Tid Scan on t3 bmt3
1523 TID Cond: (ctid = '(1,1)'::tid)
1524 -> Tid Scan on t4 bmt4
1525 TID Cond: (ctid = '(1,1)'::tid)
1529 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)';
1531 -----------------------------------------------------------
1534 Join Filter: (bmt1.c1 = bmt4.c1)
1536 Join Filter: (bmt1.c1 = bmt3.c1)
1538 Join Filter: (bmt1.c1 = bmt2.c1)
1539 -> Tid Scan on t1 bmt1
1540 TID Cond: (ctid = '(1,1)'::tid)
1541 -> Seq Scan on t2 bmt2
1542 Filter: (ctid = '(1,1)'::tid)
1543 -> Tid Scan on t3 bmt3
1544 TID Cond: (ctid = '(1,1)'::tid)
1545 -> Tid Scan on t4 bmt4
1546 TID Cond: (ctid = '(1,1)'::tid)
1550 Leading(bmt4 bmt3 bmt2 bmt1)
1552 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)';
1555 Leading(bmt4 bmt3 bmt2 bmt1)
1561 -----------------------------------------------------------
1564 Join Filter: (bmt2.c1 = bmt1.c1)
1566 Join Filter: (bmt3.c1 = bmt2.c1)
1568 Join Filter: (bmt3.c1 = bmt4.c1)
1569 -> Tid Scan on t3 bmt3
1570 TID Cond: (ctid = '(1,1)'::tid)
1571 -> Tid Scan on t4 bmt4
1572 TID Cond: (ctid = '(1,1)'::tid)
1573 -> Seq Scan on t2 bmt2
1574 Filter: (ctid = '(1,1)'::tid)
1575 -> Tid Scan on t1 bmt1
1576 TID Cond: (ctid = '(1,1)'::tid)
1580 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)';
1582 -----------------------------------------------------------
1585 Join Filter: (bmt1.c1 = bmt4.c1)
1587 Join Filter: (bmt1.c1 = bmt3.c1)
1589 Join Filter: (bmt1.c1 = bmt2.c1)
1590 -> Tid Scan on t1 bmt1
1591 TID Cond: (ctid = '(1,1)'::tid)
1592 -> Seq Scan on t2 bmt2
1593 Filter: (ctid = '(1,1)'::tid)
1594 -> Tid Scan on t3 bmt3
1595 TID Cond: (ctid = '(1,1)'::tid)
1596 -> Tid Scan on t4 bmt4
1597 TID Cond: (ctid = '(1,1)'::tid)
1601 Leading(bmt4 bmt3 bmt2 bmt1)
1603 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)';
1606 Leading(bmt4 bmt3 bmt2 bmt1)
1612 -----------------------------------------------------------
1615 Join Filter: (bmt2.c1 = bmt1.c1)
1617 Join Filter: (bmt3.c1 = bmt2.c1)
1619 Join Filter: (bmt3.c1 = bmt4.c1)
1620 -> Tid Scan on t3 bmt3
1621 TID Cond: (ctid = '(1,1)'::tid)
1622 -> Tid Scan on t4 bmt4
1623 TID Cond: (ctid = '(1,1)'::tid)
1624 -> Seq Scan on t2 bmt2
1625 Filter: (ctid = '(1,1)'::tid)
1626 -> Tid Scan on t1 bmt1
1627 TID Cond: (ctid = '(1,1)'::tid)
1631 EXPLAIN (COSTS false)
1632 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)'
1634 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)'
1636 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)'
1640 -------------------------------------------------------------------
1642 InitPlan 1 (returns $0)
1645 Join Filter: (b1t1.c1 = b1t4.c1)
1647 Join Filter: (b1t1.c1 = b1t3.c1)
1649 Join Filter: (b1t1.c1 = b1t2.c1)
1650 -> Tid Scan on t1 b1t1
1651 TID Cond: (ctid = '(1,1)'::tid)
1652 -> Seq Scan on t2 b1t2
1653 Filter: (ctid = '(1,1)'::tid)
1654 -> Tid Scan on t3 b1t3
1655 TID Cond: (ctid = '(1,1)'::tid)
1656 -> Tid Scan on t4 b1t4
1657 TID Cond: (ctid = '(1,1)'::tid)
1658 InitPlan 2 (returns $1)
1661 Join Filter: (b2t1.c1 = b2t4.c1)
1663 Join Filter: (b2t1.c1 = b2t3.c1)
1665 Join Filter: (b2t1.c1 = b2t2.c1)
1666 -> Tid Scan on t1 b2t1
1667 TID Cond: (ctid = '(1,1)'::tid)
1668 -> Seq Scan on t2 b2t2
1669 Filter: (ctid = '(1,1)'::tid)
1670 -> Tid Scan on t3 b2t3
1671 TID Cond: (ctid = '(1,1)'::tid)
1672 -> Tid Scan on t4 b2t4
1673 TID Cond: (ctid = '(1,1)'::tid)
1675 Join Filter: (bmt1.c1 = bmt4.c1)
1677 Join Filter: (bmt1.c1 = bmt3.c1)
1679 Join Filter: (bmt1.c1 = bmt2.c1)
1680 -> Tid Scan on t1 bmt1
1681 TID Cond: (ctid = '(1,1)'::tid)
1682 Filter: ((c1 <> $0) AND (c1 <> $1))
1683 -> Seq Scan on t2 bmt2
1684 Filter: (ctid = '(1,1)'::tid)
1685 -> Tid Scan on t3 bmt3
1686 TID Cond: (ctid = '(1,1)'::tid)
1687 -> Tid Scan on t4 bmt4
1688 TID Cond: (ctid = '(1,1)'::tid)
1692 Leading(bmt1 bmt2 bmt3 bmt4)
1693 Leading(b1t2 b1t3 b1t4 b1t1)
1694 Leading(b2t3 b2t4 b2t1 b2t2)
1696 EXPLAIN (COSTS false)
1697 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)'
1699 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)'
1701 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)'
1706 Leading(bmt1 bmt2 bmt3 bmt4)
1707 Leading(b1t2 b1t3 b1t4 b1t1)
1708 Leading(b2t3 b2t4 b2t1 b2t2)
1714 -------------------------------------------------------------------
1716 InitPlan 1 (returns $0)
1719 Join Filter: (b1t2.c1 = b1t1.c1)
1721 Join Filter: (b1t2.c1 = b1t4.c1)
1723 Join Filter: (b1t2.c1 = b1t3.c1)
1724 -> Seq Scan on t2 b1t2
1725 Filter: (ctid = '(1,1)'::tid)
1726 -> Tid Scan on t3 b1t3
1727 TID Cond: (ctid = '(1,1)'::tid)
1728 -> Tid Scan on t4 b1t4
1729 TID Cond: (ctid = '(1,1)'::tid)
1730 -> Tid Scan on t1 b1t1
1731 TID Cond: (ctid = '(1,1)'::tid)
1732 InitPlan 2 (returns $1)
1735 Join Filter: (b2t1.c1 = b2t2.c1)
1737 Join Filter: (b2t3.c1 = b2t1.c1)
1739 Join Filter: (b2t3.c1 = b2t4.c1)
1740 -> Tid Scan on t3 b2t3
1741 TID Cond: (ctid = '(1,1)'::tid)
1742 -> Tid Scan on t4 b2t4
1743 TID Cond: (ctid = '(1,1)'::tid)
1744 -> Tid Scan on t1 b2t1
1745 TID Cond: (ctid = '(1,1)'::tid)
1746 -> Seq Scan on t2 b2t2
1747 Filter: (ctid = '(1,1)'::tid)
1749 Join Filter: (bmt1.c1 = bmt4.c1)
1751 Join Filter: (bmt1.c1 = bmt3.c1)
1753 Join Filter: (bmt1.c1 = bmt2.c1)
1754 -> Tid Scan on t1 bmt1
1755 TID Cond: (ctid = '(1,1)'::tid)
1756 Filter: ((c1 <> $0) AND (c1 <> $1))
1757 -> Seq Scan on t2 bmt2
1758 Filter: (ctid = '(1,1)'::tid)
1759 -> Tid Scan on t3 bmt3
1760 TID Cond: (ctid = '(1,1)'::tid)
1761 -> Tid Scan on t4 bmt4
1762 TID Cond: (ctid = '(1,1)'::tid)
1766 EXPLAIN (COSTS false)
1767 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)'
1769 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)'
1771 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)'
1773 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)'
1777 ------------------------------------------------------------------------------
1779 InitPlan 1 (returns $0)
1782 Join Filter: (b1t1.c1 = b1t4.c1)
1784 Join Filter: (b1t1.c1 = b1t3.c1)
1786 Join Filter: (b1t1.c1 = b1t2.c1)
1787 -> Tid Scan on t1 b1t1
1788 TID Cond: (ctid = '(1,1)'::tid)
1789 -> Seq Scan on t2 b1t2
1790 Filter: (ctid = '(1,1)'::tid)
1791 -> Tid Scan on t3 b1t3
1792 TID Cond: (ctid = '(1,1)'::tid)
1793 -> Tid Scan on t4 b1t4
1794 TID Cond: (ctid = '(1,1)'::tid)
1795 InitPlan 2 (returns $1)
1798 Join Filter: (b2t1.c1 = b2t4.c1)
1800 Join Filter: (b2t1.c1 = b2t3.c1)
1802 Join Filter: (b2t1.c1 = b2t2.c1)
1803 -> Tid Scan on t1 b2t1
1804 TID Cond: (ctid = '(1,1)'::tid)
1805 -> Seq Scan on t2 b2t2
1806 Filter: (ctid = '(1,1)'::tid)
1807 -> Tid Scan on t3 b2t3
1808 TID Cond: (ctid = '(1,1)'::tid)
1809 -> Tid Scan on t4 b2t4
1810 TID Cond: (ctid = '(1,1)'::tid)
1811 InitPlan 3 (returns $2)
1814 Join Filter: (b3t1.c1 = b3t4.c1)
1816 Join Filter: (b3t1.c1 = b3t3.c1)
1818 Join Filter: (b3t1.c1 = b3t2.c1)
1819 -> Tid Scan on t1 b3t1
1820 TID Cond: (ctid = '(1,1)'::tid)
1821 -> Seq Scan on t2 b3t2
1822 Filter: (ctid = '(1,1)'::tid)
1823 -> Tid Scan on t3 b3t3
1824 TID Cond: (ctid = '(1,1)'::tid)
1825 -> Tid Scan on t4 b3t4
1826 TID Cond: (ctid = '(1,1)'::tid)
1828 Join Filter: (bmt1.c1 = bmt4.c1)
1830 Join Filter: (bmt1.c1 = bmt3.c1)
1832 Join Filter: (bmt1.c1 = bmt2.c1)
1833 -> Tid Scan on t1 bmt1
1834 TID Cond: (ctid = '(1,1)'::tid)
1835 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1836 -> Seq Scan on t2 bmt2
1837 Filter: (ctid = '(1,1)'::tid)
1838 -> Tid Scan on t3 bmt3
1839 TID Cond: (ctid = '(1,1)'::tid)
1840 -> Tid Scan on t4 bmt4
1841 TID Cond: (ctid = '(1,1)'::tid)
1845 Leading(bmt1 bmt2 bmt3 bmt4)
1846 Leading(b1t2 b1t3 b1t4 b1t1)
1847 Leading(b2t3 b2t4 b2t1 b2t2)
1848 Leading(b3t4 b3t1 b3t2 b3t3)
1850 EXPLAIN (COSTS false)
1851 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)'
1853 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)'
1855 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)'
1857 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)'
1862 Leading(bmt1 bmt2 bmt3 bmt4)
1863 Leading(b1t2 b1t3 b1t4 b1t1)
1864 Leading(b2t3 b2t4 b2t1 b2t2)
1865 Leading(b3t4 b3t1 b3t2 b3t3)
1871 ------------------------------------------------------------------------------
1873 InitPlan 1 (returns $0)
1876 Join Filter: (b1t2.c1 = b1t1.c1)
1878 Join Filter: (b1t2.c1 = b1t4.c1)
1880 Join Filter: (b1t2.c1 = b1t3.c1)
1881 -> Seq Scan on t2 b1t2
1882 Filter: (ctid = '(1,1)'::tid)
1883 -> Tid Scan on t3 b1t3
1884 TID Cond: (ctid = '(1,1)'::tid)
1885 -> Tid Scan on t4 b1t4
1886 TID Cond: (ctid = '(1,1)'::tid)
1887 -> Tid Scan on t1 b1t1
1888 TID Cond: (ctid = '(1,1)'::tid)
1889 InitPlan 2 (returns $1)
1892 Join Filter: (b2t1.c1 = b2t2.c1)
1894 Join Filter: (b2t3.c1 = b2t1.c1)
1896 Join Filter: (b2t3.c1 = b2t4.c1)
1897 -> Tid Scan on t3 b2t3
1898 TID Cond: (ctid = '(1,1)'::tid)
1899 -> Tid Scan on t4 b2t4
1900 TID Cond: (ctid = '(1,1)'::tid)
1901 -> Tid Scan on t1 b2t1
1902 TID Cond: (ctid = '(1,1)'::tid)
1903 -> Seq Scan on t2 b2t2
1904 Filter: (ctid = '(1,1)'::tid)
1905 InitPlan 3 (returns $2)
1908 Join Filter: (b3t1.c1 = b3t3.c1)
1910 Join Filter: (b3t1.c1 = b3t2.c1)
1912 Join Filter: (b3t1.c1 = b3t4.c1)
1913 -> Tid Scan on t1 b3t1
1914 TID Cond: (ctid = '(1,1)'::tid)
1915 -> Tid Scan on t4 b3t4
1916 TID Cond: (ctid = '(1,1)'::tid)
1917 -> Seq Scan on t2 b3t2
1918 Filter: (ctid = '(1,1)'::tid)
1919 -> Tid Scan on t3 b3t3
1920 TID Cond: (ctid = '(1,1)'::tid)
1922 Join Filter: (bmt1.c1 = bmt4.c1)
1924 Join Filter: (bmt1.c1 = bmt3.c1)
1926 Join Filter: (bmt1.c1 = bmt2.c1)
1927 -> Tid Scan on t1 bmt1
1928 TID Cond: (ctid = '(1,1)'::tid)
1929 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1930 -> Seq Scan on t2 bmt2
1931 Filter: (ctid = '(1,1)'::tid)
1932 -> Tid Scan on t3 bmt3
1933 TID Cond: (ctid = '(1,1)'::tid)
1934 -> Tid Scan on t4 bmt4
1935 TID Cond: (ctid = '(1,1)'::tid)
1939 EXPLAIN (COSTS false)
1941 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)'
1944 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)'
1946 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1948 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)'
1953 -----------------------------------------------------------------------
1958 Join Filter: (b1t1.c1 = b1t4.c1)
1960 Join Filter: (b1t1.c1 = b1t3.c1)
1962 Join Filter: (b1t1.c1 = b1t2.c1)
1963 -> Tid Scan on t1 b1t1
1964 TID Cond: (ctid = '(1,1)'::tid)
1965 -> Seq Scan on t2 b1t2
1966 Filter: (ctid = '(1,1)'::tid)
1967 -> Tid Scan on t3 b1t3
1968 TID Cond: (ctid = '(1,1)'::tid)
1969 -> Tid Scan on t4 b1t4
1970 TID Cond: (ctid = '(1,1)'::tid)
1974 Join Filter: (b2t1.c1 = b2t4.c1)
1976 Join Filter: (b2t1.c1 = b2t3.c1)
1978 Join Filter: (b2t1.c1 = b2t2.c1)
1979 -> Tid Scan on t1 b2t1
1980 TID Cond: (ctid = '(1,1)'::tid)
1981 -> Seq Scan on t2 b2t2
1982 Filter: (ctid = '(1,1)'::tid)
1983 -> Tid Scan on t3 b2t3
1984 TID Cond: (ctid = '(1,1)'::tid)
1985 -> Tid Scan on t4 b2t4
1986 TID Cond: (ctid = '(1,1)'::tid)
1988 Join Filter: (bmt1.c1 = c2.c1)
1990 Join Filter: (bmt1.c1 = c1.c1)
1992 Join Filter: (bmt1.c1 = bmt4.c1)
1994 Join Filter: (bmt1.c1 = bmt3.c1)
1996 Join Filter: (bmt1.c1 = bmt2.c1)
1997 -> Tid Scan on t1 bmt1
1998 TID Cond: (ctid = '(1,1)'::tid)
1999 -> Seq Scan on t2 bmt2
2000 Filter: (ctid = '(1,1)'::tid)
2001 -> Tid Scan on t3 bmt3
2002 TID Cond: (ctid = '(1,1)'::tid)
2003 -> Tid Scan on t4 bmt4
2004 TID Cond: (ctid = '(1,1)'::tid)
2010 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2011 Leading(b1t2 b1t3 b1t4 b1t1)
2012 Leading(b2t3 b2t4 b2t1 b2t2)
2014 EXPLAIN (COSTS false)
2016 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)'
2019 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)'
2021 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2023 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)'
2029 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2030 Leading(b1t2 b1t3 b1t4 b1t1)
2031 Leading(b2t3 b2t4 b2t1 b2t2)
2037 -------------------------------------------------------------------
2042 Join Filter: (b1t2.c1 = b1t1.c1)
2044 Join Filter: (b1t2.c1 = b1t4.c1)
2046 Join Filter: (b1t2.c1 = b1t3.c1)
2047 -> Seq Scan on t2 b1t2
2048 Filter: (ctid = '(1,1)'::tid)
2049 -> Tid Scan on t3 b1t3
2050 TID Cond: (ctid = '(1,1)'::tid)
2051 -> Tid Scan on t4 b1t4
2052 TID Cond: (ctid = '(1,1)'::tid)
2053 -> Tid Scan on t1 b1t1
2054 TID Cond: (ctid = '(1,1)'::tid)
2058 Join Filter: (b2t1.c1 = b2t2.c1)
2060 Join Filter: (b2t3.c1 = b2t1.c1)
2062 Join Filter: (b2t3.c1 = b2t4.c1)
2063 -> Tid Scan on t3 b2t3
2064 TID Cond: (ctid = '(1,1)'::tid)
2065 -> Tid Scan on t4 b2t4
2066 TID Cond: (ctid = '(1,1)'::tid)
2067 -> Tid Scan on t1 b2t1
2068 TID Cond: (ctid = '(1,1)'::tid)
2069 -> Seq Scan on t2 b2t2
2070 Filter: (ctid = '(1,1)'::tid)
2072 Join Filter: (bmt1.c1 = bmt4.c1)
2074 Join Filter: (bmt1.c1 = bmt3.c1)
2076 Join Filter: (bmt1.c1 = bmt2.c1)
2078 Join Filter: (c1.c1 = bmt1.c1)
2080 Join Filter: (c1.c1 = c2.c1)
2083 -> Tid Scan on t1 bmt1
2084 TID Cond: (ctid = '(1,1)'::tid)
2085 -> Seq Scan on t2 bmt2
2086 Filter: (ctid = '(1,1)'::tid)
2087 -> Tid Scan on t3 bmt3
2088 TID Cond: (ctid = '(1,1)'::tid)
2089 -> Tid Scan on t4 bmt4
2090 TID Cond: (ctid = '(1,1)'::tid)
2094 EXPLAIN (COSTS false)
2096 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)'
2099 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)'
2102 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)'
2104 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2106 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)'
2112 -----------------------------------------------------------------------------
2117 Join Filter: (b1t1.c1 = b1t4.c1)
2119 Join Filter: (b1t1.c1 = b1t3.c1)
2121 Join Filter: (b1t1.c1 = b1t2.c1)
2122 -> Tid Scan on t1 b1t1
2123 TID Cond: (ctid = '(1,1)'::tid)
2124 -> Seq Scan on t2 b1t2
2125 Filter: (ctid = '(1,1)'::tid)
2126 -> Tid Scan on t3 b1t3
2127 TID Cond: (ctid = '(1,1)'::tid)
2128 -> Tid Scan on t4 b1t4
2129 TID Cond: (ctid = '(1,1)'::tid)
2133 Join Filter: (b2t1.c1 = b2t4.c1)
2135 Join Filter: (b2t1.c1 = b2t3.c1)
2137 Join Filter: (b2t1.c1 = b2t2.c1)
2138 -> Tid Scan on t1 b2t1
2139 TID Cond: (ctid = '(1,1)'::tid)
2140 -> Seq Scan on t2 b2t2
2141 Filter: (ctid = '(1,1)'::tid)
2142 -> Tid Scan on t3 b2t3
2143 TID Cond: (ctid = '(1,1)'::tid)
2144 -> Tid Scan on t4 b2t4
2145 TID Cond: (ctid = '(1,1)'::tid)
2149 Join Filter: (b3t1.c1 = b3t4.c1)
2151 Join Filter: (b3t1.c1 = b3t3.c1)
2153 Join Filter: (b3t1.c1 = b3t2.c1)
2154 -> Tid Scan on t1 b3t1
2155 TID Cond: (ctid = '(1,1)'::tid)
2156 -> Seq Scan on t2 b3t2
2157 Filter: (ctid = '(1,1)'::tid)
2158 -> Tid Scan on t3 b3t3
2159 TID Cond: (ctid = '(1,1)'::tid)
2160 -> Tid Scan on t4 b3t4
2161 TID Cond: (ctid = '(1,1)'::tid)
2163 Join Filter: (bmt1.c1 = c3.c1)
2165 Join Filter: (bmt1.c1 = c2.c1)
2167 Join Filter: (bmt1.c1 = c1.c1)
2169 Join Filter: (bmt1.c1 = bmt4.c1)
2171 Join Filter: (bmt1.c1 = bmt3.c1)
2173 Join Filter: (bmt1.c1 = bmt2.c1)
2174 -> Tid Scan on t1 bmt1
2175 TID Cond: (ctid = '(1,1)'::tid)
2176 -> Seq Scan on t2 bmt2
2177 Filter: (ctid = '(1,1)'::tid)
2178 -> Tid Scan on t3 bmt3
2179 TID Cond: (ctid = '(1,1)'::tid)
2180 -> Tid Scan on t4 bmt4
2181 TID Cond: (ctid = '(1,1)'::tid)
2188 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2189 Leading(b1t2 b1t3 b1t4 b1t1)
2190 Leading(b2t3 b2t4 b2t1 b2t2)
2191 Leading(b3t4 b3t1 b3t2 b3t3)
2193 EXPLAIN (COSTS false)
2195 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)'
2198 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)'
2201 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)'
2203 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2205 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)'
2212 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2213 Leading(b1t2 b1t3 b1t4 b1t1)
2214 Leading(b2t3 b2t4 b2t1 b2t2)
2215 Leading(b3t4 b3t1 b3t2 b3t3)
2221 --------------------------------------------------------------------
2226 Join Filter: (b1t2.c1 = b1t1.c1)
2228 Join Filter: (b1t2.c1 = b1t4.c1)
2230 Join Filter: (b1t2.c1 = b1t3.c1)
2231 -> Seq Scan on t2 b1t2
2232 Filter: (ctid = '(1,1)'::tid)
2233 -> Tid Scan on t3 b1t3
2234 TID Cond: (ctid = '(1,1)'::tid)
2235 -> Tid Scan on t4 b1t4
2236 TID Cond: (ctid = '(1,1)'::tid)
2237 -> Tid Scan on t1 b1t1
2238 TID Cond: (ctid = '(1,1)'::tid)
2242 Join Filter: (b2t1.c1 = b2t2.c1)
2244 Join Filter: (b2t3.c1 = b2t1.c1)
2246 Join Filter: (b2t3.c1 = b2t4.c1)
2247 -> Tid Scan on t3 b2t3
2248 TID Cond: (ctid = '(1,1)'::tid)
2249 -> Tid Scan on t4 b2t4
2250 TID Cond: (ctid = '(1,1)'::tid)
2251 -> Tid Scan on t1 b2t1
2252 TID Cond: (ctid = '(1,1)'::tid)
2253 -> Seq Scan on t2 b2t2
2254 Filter: (ctid = '(1,1)'::tid)
2258 Join Filter: (b3t1.c1 = b3t3.c1)
2260 Join Filter: (b3t1.c1 = b3t2.c1)
2262 Join Filter: (b3t1.c1 = b3t4.c1)
2263 -> Tid Scan on t1 b3t1
2264 TID Cond: (ctid = '(1,1)'::tid)
2265 -> Tid Scan on t4 b3t4
2266 TID Cond: (ctid = '(1,1)'::tid)
2267 -> Seq Scan on t2 b3t2
2268 Filter: (ctid = '(1,1)'::tid)
2269 -> Tid Scan on t3 b3t3
2270 TID Cond: (ctid = '(1,1)'::tid)
2272 Join Filter: (bmt1.c1 = bmt4.c1)
2274 Join Filter: (bmt1.c1 = bmt3.c1)
2276 Join Filter: (bmt1.c1 = bmt2.c1)
2278 Join Filter: (c1.c1 = bmt1.c1)
2280 Join Filter: (c2.c1 = c1.c1)
2282 Join Filter: (c2.c1 = c3.c1)
2286 -> Tid Scan on t1 bmt1
2287 TID Cond: (ctid = '(1,1)'::tid)
2288 -> Seq Scan on t2 bmt2
2289 Filter: (ctid = '(1,1)'::tid)
2290 -> Tid Scan on t3 bmt3
2291 TID Cond: (ctid = '(1,1)'::tid)
2292 -> Tid Scan on t4 bmt4
2293 TID Cond: (ctid = '(1,1)'::tid)
2297 ---- No. L-2-2 the number of the tables per quiry block
2300 EXPLAIN (COSTS false)
2302 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2304 SELECT max(bmt1.c1), (
2305 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2307 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2309 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2313 -----------------------------------------------------------------
2317 InitPlan 1 (returns $0)
2319 -> Tid Scan on t1 b1t1
2320 TID Cond: (ctid = '(1,1)'::tid)
2321 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2322 InitPlan 4 (returns $3)
2324 InitPlan 3 (returns $2)
2326 -> Tid Scan on t1 b2t1
2327 TID Cond: (ctid = '(1,1)'::tid)
2328 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2329 InitPlan 6 (returns $5)
2331 InitPlan 5 (returns $4)
2333 -> Tid Scan on t1 b3t1
2334 TID Cond: (ctid = '(1,1)'::tid)
2335 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2337 -> Tid Scan on t1 bmt1
2338 TID Cond: (ctid = '(1,1)'::tid)
2339 Filter: ((c1 <> $5) AND (c1 = 1))
2346 EXPLAIN (COSTS false)
2348 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2350 SELECT max(bmt1.c1), (
2351 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2353 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2355 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2366 -----------------------------------------------------------------
2370 InitPlan 1 (returns $0)
2372 -> Tid Scan on t1 b1t1
2373 TID Cond: (ctid = '(1,1)'::tid)
2374 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2375 InitPlan 4 (returns $3)
2377 InitPlan 3 (returns $2)
2379 -> Tid Scan on t1 b2t1
2380 TID Cond: (ctid = '(1,1)'::tid)
2381 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2382 InitPlan 6 (returns $5)
2384 InitPlan 5 (returns $4)
2386 -> Tid Scan on t1 b3t1
2387 TID Cond: (ctid = '(1,1)'::tid)
2388 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2390 -> Tid Scan on t1 bmt1
2391 TID Cond: (ctid = '(1,1)'::tid)
2392 Filter: ((c1 <> $5) AND (c1 = 1))
2397 EXPLAIN (COSTS false)
2399 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)'
2401 SELECT max(bmt1.c1), (
2402 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)'
2404 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2407 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)'
2411 -------------------------------------------------------
2416 Join Filter: (b1t1.c1 = b1t2.c1)
2417 -> Tid Scan on t1 b1t1
2418 TID Cond: (ctid = '(1,1)'::tid)
2419 -> Seq Scan on t2 b1t2
2420 Filter: (ctid = '(1,1)'::tid)
2421 InitPlan 2 (returns $1)
2424 Join Filter: (b2t1.c1 = b2t2.c1)
2425 -> Tid Scan on t1 b2t1
2426 TID Cond: (ctid = '(1,1)'::tid)
2427 -> Seq Scan on t2 b2t2
2428 Filter: (ctid = '(1,1)'::tid)
2429 InitPlan 3 (returns $2)
2432 Join Filter: (b3t1.c1 = b3t2.c1)
2433 -> Tid Scan on t1 b3t1
2434 TID Cond: (ctid = '(1,1)'::tid)
2435 -> Seq Scan on t2 b3t2
2436 Filter: (ctid = '(1,1)'::tid)
2438 Join Filter: (bmt1.c1 = c1.c1)
2440 Join Filter: (bmt1.c1 = bmt2.c1)
2441 -> Tid Scan on t1 bmt1
2442 TID Cond: (ctid = '(1,1)'::tid)
2444 -> Seq Scan on t2 bmt2
2445 Filter: (ctid = '(1,1)'::tid)
2450 Leading(c1 bmt2 bmt1)
2455 EXPLAIN (COSTS false)
2457 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)'
2459 SELECT max(bmt1.c1), (
2460 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)'
2462 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2465 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)'
2470 Leading(c1 bmt2 bmt1)
2479 -------------------------------------------------------
2484 Join Filter: (b1t1.c1 = b1t2.c1)
2485 -> Tid Scan on t1 b1t1
2486 TID Cond: (ctid = '(1,1)'::tid)
2487 -> Seq Scan on t2 b1t2
2488 Filter: (ctid = '(1,1)'::tid)
2489 InitPlan 2 (returns $1)
2492 Join Filter: (b2t1.c1 = b2t2.c1)
2493 -> Tid Scan on t1 b2t1
2494 TID Cond: (ctid = '(1,1)'::tid)
2495 -> Seq Scan on t2 b2t2
2496 Filter: (ctid = '(1,1)'::tid)
2497 InitPlan 3 (returns $2)
2500 Join Filter: (b3t1.c1 = b3t2.c1)
2501 -> Tid Scan on t1 b3t1
2502 TID Cond: (ctid = '(1,1)'::tid)
2503 -> Seq Scan on t2 b3t2
2504 Filter: (ctid = '(1,1)'::tid)
2506 Join Filter: (bmt2.c1 = bmt1.c1)
2508 Join Filter: (bmt2.c1 = c1.c1)
2509 -> Seq Scan on t2 bmt2
2510 Filter: (ctid = '(1,1)'::tid)
2512 -> Tid Scan on t1 bmt1
2513 TID Cond: (ctid = '(1,1)'::tid)
2518 EXPLAIN (COSTS false)
2520 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)'
2522 SELECT max(bmt1.c1), (
2523 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)'
2525 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
2527 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)'
2531 -------------------------------------------------------------------
2536 Join Filter: (b1t1.c1 = b1t4.c1)
2538 Join Filter: (b1t1.c1 = b1t3.c1)
2540 Join Filter: (b1t1.c1 = b1t2.c1)
2541 -> Tid Scan on t1 b1t1
2542 TID Cond: (ctid = '(1,1)'::tid)
2543 -> Seq Scan on t2 b1t2
2544 Filter: (ctid = '(1,1)'::tid)
2545 -> Tid Scan on t3 b1t3
2546 TID Cond: (ctid = '(1,1)'::tid)
2547 -> Tid Scan on t4 b1t4
2548 TID Cond: (ctid = '(1,1)'::tid)
2549 InitPlan 2 (returns $1)
2552 Join Filter: (b2t1.c1 = b2t4.c1)
2554 Join Filter: (b2t1.c1 = b2t3.c1)
2556 Join Filter: (b2t1.c1 = b2t2.c1)
2557 -> Tid Scan on t1 b2t1
2558 TID Cond: (ctid = '(1,1)'::tid)
2559 -> Seq Scan on t2 b2t2
2560 Filter: (ctid = '(1,1)'::tid)
2561 -> Tid Scan on t3 b2t3
2562 TID Cond: (ctid = '(1,1)'::tid)
2563 -> Tid Scan on t4 b2t4
2564 TID Cond: (ctid = '(1,1)'::tid)
2565 InitPlan 3 (returns $2)
2568 Join Filter: (b3t1.c1 = b3t4.c1)
2570 Join Filter: (b3t1.c1 = b3t3.c1)
2572 Join Filter: (b3t1.c1 = b3t2.c1)
2573 -> Tid Scan on t1 b3t1
2574 TID Cond: (ctid = '(1,1)'::tid)
2575 -> Seq Scan on t2 b3t2
2576 Filter: (ctid = '(1,1)'::tid)
2577 -> Tid Scan on t3 b3t3
2578 TID Cond: (ctid = '(1,1)'::tid)
2579 -> Tid Scan on t4 b3t4
2580 TID Cond: (ctid = '(1,1)'::tid)
2582 Join Filter: (bmt1.c1 = c1.c1)
2584 Join Filter: (bmt1.c1 = bmt4.c1)
2586 Join Filter: (bmt1.c1 = bmt3.c1)
2588 Join Filter: (bmt1.c1 = bmt2.c1)
2589 -> Tid Scan on t1 bmt1
2590 TID Cond: (ctid = '(1,1)'::tid)
2592 -> Seq Scan on t2 bmt2
2593 Filter: (ctid = '(1,1)'::tid)
2594 -> Tid Scan on t3 bmt3
2595 TID Cond: (ctid = '(1,1)'::tid)
2596 -> Tid Scan on t4 bmt4
2597 TID Cond: (ctid = '(1,1)'::tid)
2602 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2603 Leading(b1t4 b1t3 b1t2 b1t1)
2604 Leading(b2t4 b2t3 b2t2 b2t1)
2605 Leading(b3t4 b3t3 b3t2 b3t1)
2607 EXPLAIN (COSTS false)
2609 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)'
2611 SELECT max(bmt1.c1), (
2612 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)'
2614 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
2616 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)'
2621 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2622 Leading(b1t4 b1t3 b1t2 b1t1)
2623 Leading(b2t4 b2t3 b2t2 b2t1)
2624 Leading(b3t4 b3t3 b3t2 b3t1)
2630 -------------------------------------------------------------------
2635 Join Filter: (b1t2.c1 = b1t1.c1)
2637 Join Filter: (b1t3.c1 = b1t2.c1)
2639 Join Filter: (b1t3.c1 = b1t4.c1)
2640 -> Tid Scan on t3 b1t3
2641 TID Cond: (ctid = '(1,1)'::tid)
2642 -> Tid Scan on t4 b1t4
2643 TID Cond: (ctid = '(1,1)'::tid)
2644 -> Seq Scan on t2 b1t2
2645 Filter: (ctid = '(1,1)'::tid)
2646 -> Tid Scan on t1 b1t1
2647 TID Cond: (ctid = '(1,1)'::tid)
2648 InitPlan 2 (returns $1)
2651 Join Filter: (b2t2.c1 = b2t1.c1)
2653 Join Filter: (b2t3.c1 = b2t2.c1)
2655 Join Filter: (b2t3.c1 = b2t4.c1)
2656 -> Tid Scan on t3 b2t3
2657 TID Cond: (ctid = '(1,1)'::tid)
2658 -> Tid Scan on t4 b2t4
2659 TID Cond: (ctid = '(1,1)'::tid)
2660 -> Seq Scan on t2 b2t2
2661 Filter: (ctid = '(1,1)'::tid)
2662 -> Tid Scan on t1 b2t1
2663 TID Cond: (ctid = '(1,1)'::tid)
2664 InitPlan 3 (returns $2)
2667 Join Filter: (b3t2.c1 = b3t1.c1)
2669 Join Filter: (b3t3.c1 = b3t2.c1)
2671 Join Filter: (b3t3.c1 = b3t4.c1)
2672 -> Tid Scan on t3 b3t3
2673 TID Cond: (ctid = '(1,1)'::tid)
2674 -> Tid Scan on t4 b3t4
2675 TID Cond: (ctid = '(1,1)'::tid)
2676 -> Seq Scan on t2 b3t2
2677 Filter: (ctid = '(1,1)'::tid)
2678 -> Tid Scan on t1 b3t1
2679 TID Cond: (ctid = '(1,1)'::tid)
2681 Join Filter: (bmt2.c1 = bmt1.c1)
2683 Join Filter: (bmt3.c1 = bmt2.c1)
2685 Join Filter: (bmt4.c1 = bmt3.c1)
2687 Join Filter: (bmt4.c1 = c1.c1)
2688 -> Tid Scan on t4 bmt4
2689 TID Cond: (ctid = '(1,1)'::tid)
2691 -> Tid Scan on t3 bmt3
2692 TID Cond: (ctid = '(1,1)'::tid)
2693 -> Seq Scan on t2 bmt2
2694 Filter: (ctid = '(1,1)'::tid)
2695 -> Tid Scan on t1 bmt1
2696 TID Cond: (ctid = '(1,1)'::tid)
2701 EXPLAIN (COSTS false)
2703 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)'
2705 SELECT max(bmt1.c1), (
2706 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2708 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
2710 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2714 -------------------------------------------------------------------
2719 Join Filter: (b1t1.c1 = b1t4.c1)
2721 Join Filter: (b1t1.c1 = b1t3.c1)
2723 Join Filter: (b1t1.c1 = b1t2.c1)
2724 -> Tid Scan on t1 b1t1
2725 TID Cond: (ctid = '(1,1)'::tid)
2726 -> Seq Scan on t2 b1t2
2727 Filter: (ctid = '(1,1)'::tid)
2728 -> Tid Scan on t3 b1t3
2729 TID Cond: (ctid = '(1,1)'::tid)
2730 -> Tid Scan on t4 b1t4
2731 TID Cond: (ctid = '(1,1)'::tid)
2732 InitPlan 3 (returns $2)
2734 InitPlan 2 (returns $1)
2736 -> Tid Scan on t1 b2t1
2737 TID Cond: (ctid = '(1,1)'::tid)
2738 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2739 InitPlan 4 (returns $3)
2741 -> Tid Scan on t1 b3t1
2742 TID Cond: (ctid = '(1,1)'::tid)
2744 Join Filter: (bmt1.c1 = c1.c1)
2746 Join Filter: (bmt1.c1 = bmt4.c1)
2748 Join Filter: (bmt1.c1 = bmt3.c1)
2750 Join Filter: (bmt1.c1 = bmt2.c1)
2751 -> Tid Scan on t1 bmt1
2752 TID Cond: (ctid = '(1,1)'::tid)
2754 -> Seq Scan on t2 bmt2
2755 Filter: (ctid = '(1,1)'::tid)
2756 -> Tid Scan on t3 bmt3
2757 TID Cond: (ctid = '(1,1)'::tid)
2758 -> Tid Scan on t4 bmt4
2759 TID Cond: (ctid = '(1,1)'::tid)
2764 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2765 Leading(b1t4 b1t3 b1t2 b1t1)
2767 EXPLAIN (COSTS false)
2769 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)'
2771 SELECT max(bmt1.c1), (
2772 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2774 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
2776 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2781 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2782 Leading(b1t4 b1t3 b1t2 b1t1)
2788 -------------------------------------------------------------------
2793 Join Filter: (b1t2.c1 = b1t1.c1)
2795 Join Filter: (b1t3.c1 = b1t2.c1)
2797 Join Filter: (b1t3.c1 = b1t4.c1)
2798 -> Tid Scan on t3 b1t3
2799 TID Cond: (ctid = '(1,1)'::tid)
2800 -> Tid Scan on t4 b1t4
2801 TID Cond: (ctid = '(1,1)'::tid)
2802 -> Seq Scan on t2 b1t2
2803 Filter: (ctid = '(1,1)'::tid)
2804 -> Tid Scan on t1 b1t1
2805 TID Cond: (ctid = '(1,1)'::tid)
2806 InitPlan 3 (returns $2)
2808 InitPlan 2 (returns $1)
2810 -> Tid Scan on t1 b2t1
2811 TID Cond: (ctid = '(1,1)'::tid)
2812 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2813 InitPlan 4 (returns $3)
2815 -> Tid Scan on t1 b3t1
2816 TID Cond: (ctid = '(1,1)'::tid)
2818 Join Filter: (bmt2.c1 = bmt1.c1)
2820 Join Filter: (bmt3.c1 = bmt2.c1)
2822 Join Filter: (bmt4.c1 = bmt3.c1)
2824 Join Filter: (bmt4.c1 = c1.c1)
2825 -> Tid Scan on t4 bmt4
2826 TID Cond: (ctid = '(1,1)'::tid)
2828 -> Tid Scan on t3 bmt3
2829 TID Cond: (ctid = '(1,1)'::tid)
2830 -> Seq Scan on t2 bmt2
2831 Filter: (ctid = '(1,1)'::tid)
2832 -> Tid Scan on t1 bmt1
2833 TID Cond: (ctid = '(1,1)'::tid)
2838 ---- No. L-2-3 RULE or VIEW
2841 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2843 -----------------------------------------------------------------
2846 Join Filter: (t1.c1 = t4.c1)
2848 Join Filter: (t1.c1 = t3.c1)
2850 Join Filter: (t1.c1 = t2.c1)
2853 TID Cond: (ctid = '(1,1)'::tid)
2856 TID Cond: (ctid = '(1,1)'::tid)
2858 Filter: (ctid = '(1,1)'::tid)
2860 TID Cond: (ctid = '(1,1)'::tid)
2862 TID Cond: (ctid = '(1,1)'::tid)
2865 /*+ Leading(t4 t3 t2 t1 r1) */
2866 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2869 Leading(t4 t3 t2 t1 r1)
2875 -----------------------------------------------------------------
2879 Join Filter: (t2.c1 = t1.c1)
2881 Join Filter: (t3.c1 = t2.c1)
2883 Join Filter: (t3.c1 = t4.c1)
2885 TID Cond: (ctid = '(1,1)'::tid)
2887 TID Cond: (ctid = '(1,1)'::tid)
2889 Filter: (ctid = '(1,1)'::tid)
2891 TID Cond: (ctid = '(1,1)'::tid)
2893 TID Cond: (ctid = '(1,1)'::tid)
2897 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2899 -----------------------------------------------------------------
2902 Join Filter: (b1t1.c1 = b1t4.c1)
2904 Join Filter: (b1t1.c1 = b1t3.c1)
2906 Join Filter: (b1t1.c1 = b1t2.c1)
2909 TID Cond: (ctid = '(1,1)'::tid)
2911 -> Tid Scan on t1 b1t1
2912 TID Cond: (ctid = '(1,1)'::tid)
2913 -> Seq Scan on t2 b1t2
2914 Filter: (ctid = '(1,1)'::tid)
2915 -> Tid Scan on t3 b1t3
2916 TID Cond: (ctid = '(1,1)'::tid)
2917 -> Tid Scan on t4 b1t4
2918 TID Cond: (ctid = '(1,1)'::tid)
2921 /*+ Leading(b1t1 b1t2 b1t3 b1t4 r1_) */
2922 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2925 Leading(b1t1 b1t2 b1t3 b1t4 r1_)
2931 -----------------------------------------------------------------
2935 Join Filter: (b1t1.c1 = b1t4.c1)
2937 Join Filter: (b1t1.c1 = b1t3.c1)
2939 Join Filter: (b1t1.c1 = b1t2.c1)
2940 -> Tid Scan on t1 b1t1
2941 TID Cond: (ctid = '(1,1)'::tid)
2942 -> Seq Scan on t2 b1t2
2943 Filter: (ctid = '(1,1)'::tid)
2944 -> Tid Scan on t3 b1t3
2945 TID Cond: (ctid = '(1,1)'::tid)
2946 -> Tid Scan on t4 b1t4
2947 TID Cond: (ctid = '(1,1)'::tid)
2949 TID Cond: (ctid = '(1,1)'::tid)
2954 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2956 -----------------------------------------------------------------
2959 Join Filter: (t1.c1 = t4.c1)
2961 Join Filter: (t1.c1 = t3.c1)
2963 Join Filter: (t1.c1 = t2.c1)
2966 TID Cond: (ctid = '(1,1)'::tid)
2969 TID Cond: (ctid = '(1,1)'::tid)
2971 Filter: (ctid = '(1,1)'::tid)
2973 TID Cond: (ctid = '(1,1)'::tid)
2975 TID Cond: (ctid = '(1,1)'::tid)
2979 Join Filter: (t1.c1 = t4.c1)
2981 Join Filter: (t1.c1 = t3.c1)
2983 Join Filter: (t1.c1 = t2.c1)
2986 TID Cond: (ctid = '(1,1)'::tid)
2989 TID Cond: (ctid = '(1,1)'::tid)
2991 Filter: (ctid = '(1,1)'::tid)
2993 TID Cond: (ctid = '(1,1)'::tid)
2995 TID Cond: (ctid = '(1,1)'::tid)
2998 /*+ Leading(t4 t3 t2 t1 r2) */
2999 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3002 Leading(t4 t3 t2 t1 r2)
3009 Leading(t4 t3 t2 t1 r2)
3015 -----------------------------------------------------------------
3019 Join Filter: (t2.c1 = t1.c1)
3021 Join Filter: (t3.c1 = t2.c1)
3023 Join Filter: (t3.c1 = t4.c1)
3025 TID Cond: (ctid = '(1,1)'::tid)
3027 TID Cond: (ctid = '(1,1)'::tid)
3029 Filter: (ctid = '(1,1)'::tid)
3031 TID Cond: (ctid = '(1,1)'::tid)
3033 TID Cond: (ctid = '(1,1)'::tid)
3039 Join Filter: (t2.c1 = t1.c1)
3041 Join Filter: (t3.c1 = t2.c1)
3043 Join Filter: (t3.c1 = t4.c1)
3045 TID Cond: (ctid = '(1,1)'::tid)
3047 TID Cond: (ctid = '(1,1)'::tid)
3049 Filter: (ctid = '(1,1)'::tid)
3051 TID Cond: (ctid = '(1,1)'::tid)
3053 TID Cond: (ctid = '(1,1)'::tid)
3057 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3059 -----------------------------------------------------------------
3062 Join Filter: (b1t1.c1 = b1t4.c1)
3064 Join Filter: (b1t1.c1 = b1t3.c1)
3066 Join Filter: (b1t1.c1 = b1t2.c1)
3069 TID Cond: (ctid = '(1,1)'::tid)
3071 -> Tid Scan on t1 b1t1
3072 TID Cond: (ctid = '(1,1)'::tid)
3073 -> Seq Scan on t2 b1t2
3074 Filter: (ctid = '(1,1)'::tid)
3075 -> Tid Scan on t3 b1t3
3076 TID Cond: (ctid = '(1,1)'::tid)
3077 -> Tid Scan on t4 b1t4
3078 TID Cond: (ctid = '(1,1)'::tid)
3082 Join Filter: (b2t1.c1 = b2t4.c1)
3084 Join Filter: (b2t1.c1 = b2t3.c1)
3086 Join Filter: (b2t1.c1 = b2t2.c1)
3089 TID Cond: (ctid = '(1,1)'::tid)
3091 -> Tid Scan on t1 b2t1
3092 TID Cond: (ctid = '(1,1)'::tid)
3093 -> Seq Scan on t2 b2t2
3094 Filter: (ctid = '(1,1)'::tid)
3095 -> Tid Scan on t3 b2t3
3096 TID Cond: (ctid = '(1,1)'::tid)
3097 -> Tid Scan on t4 b2t4
3098 TID Cond: (ctid = '(1,1)'::tid)
3102 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3103 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3105 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3108 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3110 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3116 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3118 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3123 -----------------------------------------------------------------
3127 Join Filter: (b1t1.c1 = b1t4.c1)
3129 Join Filter: (b1t1.c1 = b1t3.c1)
3131 Join Filter: (b1t1.c1 = b1t2.c1)
3132 -> Tid Scan on t1 b1t1
3133 TID Cond: (ctid = '(1,1)'::tid)
3134 -> Seq Scan on t2 b1t2
3135 Filter: (ctid = '(1,1)'::tid)
3136 -> Tid Scan on t3 b1t3
3137 TID Cond: (ctid = '(1,1)'::tid)
3138 -> Tid Scan on t4 b1t4
3139 TID Cond: (ctid = '(1,1)'::tid)
3141 TID Cond: (ctid = '(1,1)'::tid)
3147 Join Filter: (b2t1.c1 = b2t4.c1)
3149 Join Filter: (b2t1.c1 = b2t3.c1)
3151 Join Filter: (b2t1.c1 = b2t2.c1)
3152 -> Tid Scan on t1 b2t1
3153 TID Cond: (ctid = '(1,1)'::tid)
3154 -> Seq Scan on t2 b2t2
3155 Filter: (ctid = '(1,1)'::tid)
3156 -> Tid Scan on t3 b2t3
3157 TID Cond: (ctid = '(1,1)'::tid)
3158 -> Tid Scan on t4 b2t4
3159 TID Cond: (ctid = '(1,1)'::tid)
3161 TID Cond: (ctid = '(1,1)'::tid)
3166 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3168 -----------------------------------------------------------------
3171 Join Filter: (t1.c1 = t4.c1)
3173 Join Filter: (t1.c1 = t3.c1)
3175 Join Filter: (t1.c1 = t2.c1)
3178 TID Cond: (ctid = '(1,1)'::tid)
3181 TID Cond: (ctid = '(1,1)'::tid)
3183 Filter: (ctid = '(1,1)'::tid)
3185 TID Cond: (ctid = '(1,1)'::tid)
3187 TID Cond: (ctid = '(1,1)'::tid)
3191 Join Filter: (t1.c1 = t4.c1)
3193 Join Filter: (t1.c1 = t3.c1)
3195 Join Filter: (t1.c1 = t2.c1)
3198 TID Cond: (ctid = '(1,1)'::tid)
3201 TID Cond: (ctid = '(1,1)'::tid)
3203 Filter: (ctid = '(1,1)'::tid)
3205 TID Cond: (ctid = '(1,1)'::tid)
3207 TID Cond: (ctid = '(1,1)'::tid)
3211 Join Filter: (t1.c1 = t4.c1)
3213 Join Filter: (t1.c1 = t3.c1)
3215 Join Filter: (t1.c1 = t2.c1)
3218 TID Cond: (ctid = '(1,1)'::tid)
3221 TID Cond: (ctid = '(1,1)'::tid)
3223 Filter: (ctid = '(1,1)'::tid)
3225 TID Cond: (ctid = '(1,1)'::tid)
3227 TID Cond: (ctid = '(1,1)'::tid)
3230 /*+ Leading(t4 t3 t2 t1 r3) */
3231 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3234 Leading(t4 t3 t2 t1 r3)
3241 Leading(t4 t3 t2 t1 r3)
3248 Leading(t4 t3 t2 t1 r3)
3254 -----------------------------------------------------------------
3258 Join Filter: (t2.c1 = t1.c1)
3260 Join Filter: (t3.c1 = t2.c1)
3262 Join Filter: (t3.c1 = t4.c1)
3264 TID Cond: (ctid = '(1,1)'::tid)
3266 TID Cond: (ctid = '(1,1)'::tid)
3268 Filter: (ctid = '(1,1)'::tid)
3270 TID Cond: (ctid = '(1,1)'::tid)
3272 TID Cond: (ctid = '(1,1)'::tid)
3278 Join Filter: (t2.c1 = t1.c1)
3280 Join Filter: (t3.c1 = t2.c1)
3282 Join Filter: (t3.c1 = t4.c1)
3284 TID Cond: (ctid = '(1,1)'::tid)
3286 TID Cond: (ctid = '(1,1)'::tid)
3288 Filter: (ctid = '(1,1)'::tid)
3290 TID Cond: (ctid = '(1,1)'::tid)
3292 TID Cond: (ctid = '(1,1)'::tid)
3298 Join Filter: (t2.c1 = t1.c1)
3300 Join Filter: (t3.c1 = t2.c1)
3302 Join Filter: (t3.c1 = t4.c1)
3304 TID Cond: (ctid = '(1,1)'::tid)
3306 TID Cond: (ctid = '(1,1)'::tid)
3308 Filter: (ctid = '(1,1)'::tid)
3310 TID Cond: (ctid = '(1,1)'::tid)
3312 TID Cond: (ctid = '(1,1)'::tid)
3316 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3318 -----------------------------------------------------------------
3321 Join Filter: (b1t1.c1 = b1t4.c1)
3323 Join Filter: (b1t1.c1 = b1t3.c1)
3325 Join Filter: (b1t1.c1 = b1t2.c1)
3328 TID Cond: (ctid = '(1,1)'::tid)
3330 -> Tid Scan on t1 b1t1
3331 TID Cond: (ctid = '(1,1)'::tid)
3332 -> Seq Scan on t2 b1t2
3333 Filter: (ctid = '(1,1)'::tid)
3334 -> Tid Scan on t3 b1t3
3335 TID Cond: (ctid = '(1,1)'::tid)
3336 -> Tid Scan on t4 b1t4
3337 TID Cond: (ctid = '(1,1)'::tid)
3341 Join Filter: (b2t1.c1 = b2t4.c1)
3343 Join Filter: (b2t1.c1 = b2t3.c1)
3345 Join Filter: (b2t1.c1 = b2t2.c1)
3348 TID Cond: (ctid = '(1,1)'::tid)
3350 -> Tid Scan on t1 b2t1
3351 TID Cond: (ctid = '(1,1)'::tid)
3352 -> Seq Scan on t2 b2t2
3353 Filter: (ctid = '(1,1)'::tid)
3354 -> Tid Scan on t3 b2t3
3355 TID Cond: (ctid = '(1,1)'::tid)
3356 -> Tid Scan on t4 b2t4
3357 TID Cond: (ctid = '(1,1)'::tid)
3361 Join Filter: (b3t1.c1 = b3t4.c1)
3363 Join Filter: (b3t1.c1 = b3t3.c1)
3365 Join Filter: (b3t1.c1 = b3t2.c1)
3368 TID Cond: (ctid = '(1,1)'::tid)
3370 -> Tid Scan on t1 b3t1
3371 TID Cond: (ctid = '(1,1)'::tid)
3372 -> Seq Scan on t2 b3t2
3373 Filter: (ctid = '(1,1)'::tid)
3374 -> Tid Scan on t3 b3t3
3375 TID Cond: (ctid = '(1,1)'::tid)
3376 -> Tid Scan on t4 b3t4
3377 TID Cond: (ctid = '(1,1)'::tid)
3381 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3382 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3383 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3385 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3388 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3390 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3391 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3397 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3399 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3400 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3406 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3408 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3409 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3414 -----------------------------------------------------------------
3418 Join Filter: (b1t1.c1 = b1t4.c1)
3420 Join Filter: (b1t1.c1 = b1t3.c1)
3422 Join Filter: (b1t1.c1 = b1t2.c1)
3423 -> Tid Scan on t1 b1t1
3424 TID Cond: (ctid = '(1,1)'::tid)
3425 -> Seq Scan on t2 b1t2
3426 Filter: (ctid = '(1,1)'::tid)
3427 -> Tid Scan on t3 b1t3
3428 TID Cond: (ctid = '(1,1)'::tid)
3429 -> Tid Scan on t4 b1t4
3430 TID Cond: (ctid = '(1,1)'::tid)
3432 TID Cond: (ctid = '(1,1)'::tid)
3438 Join Filter: (b2t1.c1 = b2t4.c1)
3440 Join Filter: (b2t1.c1 = b2t3.c1)
3442 Join Filter: (b2t1.c1 = b2t2.c1)
3443 -> Tid Scan on t1 b2t1
3444 TID Cond: (ctid = '(1,1)'::tid)
3445 -> Seq Scan on t2 b2t2
3446 Filter: (ctid = '(1,1)'::tid)
3447 -> Tid Scan on t3 b2t3
3448 TID Cond: (ctid = '(1,1)'::tid)
3449 -> Tid Scan on t4 b2t4
3450 TID Cond: (ctid = '(1,1)'::tid)
3452 TID Cond: (ctid = '(1,1)'::tid)
3458 Join Filter: (b3t1.c1 = b3t4.c1)
3460 Join Filter: (b3t1.c1 = b3t3.c1)
3462 Join Filter: (b3t1.c1 = b3t2.c1)
3463 -> Tid Scan on t1 b3t1
3464 TID Cond: (ctid = '(1,1)'::tid)
3465 -> Seq Scan on t2 b3t2
3466 Filter: (ctid = '(1,1)'::tid)
3467 -> Tid Scan on t3 b3t3
3468 TID Cond: (ctid = '(1,1)'::tid)
3469 -> Tid Scan on t4 b3t4
3470 TID Cond: (ctid = '(1,1)'::tid)
3472 TID Cond: (ctid = '(1,1)'::tid)
3477 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3479 ------------------------------------
3481 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3482 -> Seq Scan on t1 v1t1
3484 -> Seq Scan on t1 v1t1_1
3487 /*+Leading(v1t1 v1t1)*/
3488 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3489 INFO: hint syntax error at or near "Leading(v1t1 v1t1)"
3490 DETAIL: Relation name "v1t1" is ambiguous.
3499 ------------------------------------
3501 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3502 -> Seq Scan on t1 v1t1
3504 -> Seq Scan on t1 v1t1_1
3508 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3510 -----------------------------------
3512 Hash Cond: (v1t1.c1 = v1t1_.c1)
3513 -> Seq Scan on t1 v1t1
3515 -> Seq Scan on t1 v1t1_
3518 /*+Leading(v1t1 v1t1_)*/
3519 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3528 -----------------------------------
3530 Hash Cond: (v1t1.c1 = v1t1_.c1)
3531 -> Seq Scan on t1 v1t1
3533 -> Seq Scan on t1 v1t1_
3537 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3539 ------------------------------------
3541 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3542 -> Seq Scan on t1 r4t1
3544 -> Seq Scan on t1 r4t1_1
3547 /*+Leading(r4t1 r4t1)*/
3548 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3549 INFO: hint syntax error at or near "Leading(r4t1 r4t1)"
3550 DETAIL: Relation name "r4t1" is ambiguous.
3559 ------------------------------------
3561 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3562 -> Seq Scan on t1 r4t1
3564 -> Seq Scan on t1 r4t1_1
3568 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3570 ----------------------------------
3572 Hash Cond: (r4t1.c1 = r5t1.c1)
3573 -> Seq Scan on t1 r4t1
3575 -> Seq Scan on t1 r5t1
3578 /*+Leading(r4t1 r5t1)*/
3579 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3588 ----------------------------------
3590 Hash Cond: (r4t1.c1 = r5t1.c1)
3591 -> Seq Scan on t1 r4t1
3593 -> Seq Scan on t1 r5t1
3597 ---- No. L-2-4 VALUES clause
3600 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3602 -------------------------------------------------
3605 Hash Cond: (t2.c1 = "*VALUES*".column1)
3608 -> Values Scan on "*VALUES*"
3609 -> Index Scan using t1_i1 on t1
3610 Index Cond: (c1 = t2.c1)
3613 /*+ Leading(t3 t1 t2) */
3614 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3623 -------------------------------------------------
3626 Hash Cond: (t2.c1 = "*VALUES*".column1)
3629 -> Values Scan on "*VALUES*"
3630 -> Index Scan using t1_i1 on t1
3631 Index Cond: (c1 = t2.c1)
3634 /*+ Leading(*VALUES* t1 t2) */
3635 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;
3638 Leading(*VALUES* t1 t2)
3644 -----------------------------------------------------
3647 -> Values Scan on "*VALUES*"
3648 -> Index Scan using t1_i1 on t1
3649 Index Cond: (c1 = "*VALUES*".column1)
3650 -> Index Scan using t2_i1 on t2
3651 Index Cond: (c1 = t1.c1)
3655 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;
3657 -------------------------------------------------------
3659 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3662 Hash Cond: (t2.c1 = "*VALUES*".column1)
3665 -> Values Scan on "*VALUES*"
3666 -> Index Scan using t1_i1 on t1
3667 Index Cond: (c1 = t2.c1)
3668 -> Values Scan on "*VALUES*_1"
3671 /*+ Leading(t4 t3 t2 t1) */
3672 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3676 Leading(t4 t3 t2 t1)
3681 -------------------------------------------------------
3683 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3686 Hash Cond: (t2.c1 = "*VALUES*".column1)
3689 -> Values Scan on "*VALUES*"
3690 -> Index Scan using t1_i1 on t1
3691 Index Cond: (c1 = t2.c1)
3692 -> Values Scan on "*VALUES*_1"
3695 /*+ Leading(*VALUES* t3 t2 t1) */
3696 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;
3697 INFO: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) "
3698 DETAIL: Relation name "*VALUES*" is ambiguous.
3704 Leading(*VALUES* t3 t2 t1)
3707 -------------------------------------------------------
3709 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3712 Hash Cond: (t2.c1 = "*VALUES*".column1)
3715 -> Values Scan on "*VALUES*"
3716 -> Index Scan using t1_i1 on t1
3717 Index Cond: (c1 = t2.c1)
3718 -> Values Scan on "*VALUES*_1"
3722 ---- No. L-3-1 leading the order of table joins
3724 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3726 ------------------------------------------
3728 Merge Cond: (t1.c1 = t2.c1)
3730 Merge Cond: (t1.c1 = t3.c1)
3731 -> Index Scan using t1_i1 on t1
3732 -> Index Scan using t3_i1 on t3
3739 /*+Leading(t3 t1 t2)*/
3740 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3749 ------------------------------------------
3751 Merge Cond: (t1.c1 = t2.c1)
3753 Merge Cond: (t1.c1 = t3.c1)
3754 -> Index Scan using t1_i1 on t1
3755 -> Index Scan using t3_i1 on t3
3762 /*+Leading(t1 t2 t3)*/
3763 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3772 ------------------------------------------
3775 Merge Cond: (t1.c1 = t2.c1)
3776 -> Index Scan using t1_i1 on t1
3780 -> Index Scan using t3_i1 on t3
3781 Index Cond: (c1 = t1.c1)
3785 ---- No. L-3-2 GUC parameter to disable hints
3787 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3789 ------------------------------------------
3791 Merge Cond: (t1.c1 = t2.c1)
3793 Merge Cond: (t1.c1 = t3.c1)
3794 -> Index Scan using t1_i1 on t1
3795 -> Index Scan using t3_i1 on t3
3802 Set geqo_threshold = 3;
3804 /*+Leading(t1 t2 t3)*/
3805 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3814 ------------------------------------------
3816 Merge Cond: (t1.c1 = t2.c1)
3818 Merge Cond: (t1.c1 = t3.c1)
3819 -> Index Scan using t1_i1 on t1
3820 -> Index Scan using t3_i1 on t3
3826 Reset geqo_threshold;
3828 Set geqo_threshold = 4;
3830 /*+Leading(t1 t2 t3)*/
3831 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3840 ------------------------------------------
3843 Merge Cond: (t1.c1 = t2.c1)
3844 -> Index Scan using t1_i1 on t1
3848 -> Index Scan using t3_i1 on t3
3849 Index Cond: (c1 = t1.c1)
3852 Reset geqo_threshold;
3854 Set from_collapse_limit = 2;
3855 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3857 -----------------------------------------------------
3859 Hash Cond: (t1.c1 = v2t1.c1)
3863 Merge Cond: (v2t1.c1 = v2t2.c1)
3864 -> Index Scan using t1_i1 on t1 v2t1
3867 -> Seq Scan on t2 v2t2
3870 /*+Leading(t1 v2t1 v2t2)*/
3871 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3874 Leading(t1 v2t1 v2t2)
3880 -----------------------------------------------------
3882 Hash Cond: (t1.c1 = v2t1.c1)
3886 Merge Cond: (v2t1.c1 = v2t2.c1)
3887 -> Index Scan using t1_i1 on t1 v2t1
3890 -> Seq Scan on t2 v2t2
3893 Reset from_collapse_limit;
3895 Set from_collapse_limit = 3;
3896 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3898 -----------------------------------------------
3900 Merge Cond: (v2t1.c1 = v2t2.c1)
3902 Merge Cond: (t1.c1 = v2t1.c1)
3903 -> Index Scan using t1_i1 on t1
3904 -> Index Scan using t1_i1 on t1 v2t1
3907 -> Seq Scan on t2 v2t2
3910 /*+Leading(v2t1 v2t2 t1)*/
3911 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3914 Leading(v2t1 v2t2 t1)
3920 -----------------------------------------------------
3922 Hash Cond: (t1.c1 = v2t1.c1)
3926 Merge Cond: (v2t1.c1 = v2t2.c1)
3927 -> Index Scan using t1_i1 on t1 v2t1
3930 -> Seq Scan on t2 v2t2
3933 Reset from_collapse_limit;
3935 Set join_collapse_limit = 2;
3936 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3937 JOIN s1.t2 ON (t3.c1 = t2.c1)
3938 JOIN s1.t1 ON (t1.c1 = t3.c1);
3940 ------------------------------------------
3942 Hash Cond: (t1.c1 = t3.c1)
3946 Hash Cond: (t3.c1 = t2.c1)
3952 /*+Leading(t1 t2 t3)*/
3953 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3954 JOIN s1.t2 ON (t3.c1 = t2.c1)
3955 JOIN s1.t1 ON (t1.c1 = t3.c1);
3964 ------------------------------------------
3966 Hash Cond: (t1.c1 = t3.c1)
3970 Hash Cond: (t3.c1 = t2.c1)
3976 Reset join_collapse_limit;
3978 Set join_collapse_limit = 3;
3979 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3980 JOIN s1.t2 ON (t3.c1 = t2.c1)
3981 JOIN s1.t1 ON (t1.c1 = t3.c1);
3983 ------------------------------------------
3985 Join Filter: (t2.c1 = t3.c1)
3987 Merge Cond: (t1.c1 = t2.c1)
3988 -> Index Scan using t1_i1 on t1
3992 -> Index Scan using t3_i1 on t3
3993 Index Cond: (c1 = t1.c1)
3996 /*+Leading(t1 t2 t3)*/
3997 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3998 JOIN s1.t2 ON (t3.c1 = t2.c1)
3999 JOIN s1.t1 ON (t1.c1 = t3.c1);
4008 ------------------------------------------
4010 Join Filter: (t2.c1 = t3.c1)
4012 Merge Cond: (t1.c1 = t2.c1)
4013 -> Index Scan using t1_i1 on t1
4017 -> Index Scan using t3_i1 on t3
4018 Index Cond: (c1 = t1.c1)
4021 Reset join_collapse_limit;
4023 ---- No. L-3-3 join between parents or between children
4026 /*+Leading(t1 t2 t3)*/
4027 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4028 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4029 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4038 -------------------------------------------------
4040 Hash Cond: (t1.c1 = t3.c1)
4042 Hash Cond: (t1.c1 = t2.c1)
4044 -> Seq Scan on p2c1 t1
4045 -> Seq Scan on p2c1c1 t1_1
4046 -> Seq Scan on p2c1c2 t1_2
4049 -> Seq Scan on p2c2 t2
4050 -> Seq Scan on p2c2c1 t2_1
4051 -> Seq Scan on p2c2c2 t2_2
4054 -> Seq Scan on p2c3 t3
4055 -> Seq Scan on p2c3c1 t3_1
4056 -> Seq Scan on p2c3c2 t3_2
4060 /*+Leading(p2c1c1 p2c2c1 p2c3c1)*/
4061 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4062 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4063 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4067 Leading(p2c1c1 p2c2c1 p2c3c1)
4072 -------------------------------------------------
4074 Hash Cond: (t1.c1 = t3.c1)
4076 Hash Cond: (t1.c1 = t2.c1)
4078 -> Seq Scan on p2c1 t1
4079 -> Seq Scan on p2c1c1 t1_1
4080 -> Seq Scan on p2c1c2 t1_2
4083 -> Seq Scan on p2c2 t2
4084 -> Seq Scan on p2c2c1 t2_1
4085 -> Seq Scan on p2c2c2 t2_2
4088 -> Seq Scan on p2c3 t3
4089 -> Seq Scan on p2c3c1 t3_1
4090 -> Seq Scan on p2c3c2 t3_2
4094 ---- No. L-3-4 conflict leading hint
4097 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4098 JOIN s1.t2 ON (t1.c1 = t2.c1)
4099 JOIN s1.t3 ON (t1.c1 = t3.c1);
4101 ------------------------------------------
4103 Merge Cond: (t1.c1 = t2.c1)
4105 Merge Cond: (t1.c1 = t3.c1)
4106 -> Index Scan using t1_i1 on t1
4107 -> Index Scan using t3_i1 on t3
4113 /*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4114 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4115 JOIN s1.t2 ON (t1.c1 = t2.c1)
4116 JOIN s1.t3 ON (t1.c1 = t3.c1);
4117 INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4118 DETAIL: Conflict leading hint.
4128 ------------------------------------------
4131 Merge Cond: (t1.c1 = t2.c1)
4132 -> Index Scan using t1_i1 on t1
4136 -> Index Scan using t3_i1 on t3
4137 Index Cond: (c1 = t1.c1)
4141 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4142 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4143 JOIN s1.t2 ON (t1.c1 = t2.c1)
4144 JOIN s1.t3 ON (t1.c1 = t3.c1);
4145 INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
4146 DETAIL: Conflict leading hint.
4147 INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4148 DETAIL: Conflict leading hint.
4159 ------------------------------------------
4162 Merge Cond: (t1.c1 = t2.c1)
4163 -> Index Scan using t1_i1 on t1
4167 -> Index Scan using t3_i1 on t3
4168 Index Cond: (c1 = t1.c1)
4172 /*+Leading(t2 t3 t1)Leading()*/
4173 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4174 JOIN s1.t2 ON (t1.c1 = t2.c1)
4175 JOIN s1.t3 ON (t1.c1 = t3.c1);
4176 INFO: hint syntax error at or near "Leading()"
4177 DETAIL: Leading hint requires at least two relations.
4187 ------------------------------------------
4189 Merge Cond: (t1.c1 = t2.c1)
4190 -> Index Scan using t1_i1 on t1
4194 Hash Cond: (t3.c1 = t2.c1)
4201 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
4202 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4203 JOIN s1.t2 ON (t1.c1 = t2.c1)
4204 JOIN s1.t3 ON (t1.c1 = t3.c1);
4205 INFO: hint syntax error at or near "Leading()"
4206 DETAIL: Leading hint requires at least two relations.
4207 INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
4208 DETAIL: Conflict leading hint.
4219 ------------------------------------------
4221 Merge Cond: (t1.c1 = t2.c1)
4222 -> Index Scan using t1_i1 on t1
4226 Hash Cond: (t3.c1 = t2.c1)
4233 ---- No. L-3-5 hint state output
4237 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4238 JOIN s1.t2 ON (t1.c1 = t2.c1)
4239 JOIN s1.t3 ON (t1.c1 = t3.c1);
4240 INFO: hint syntax error at or near "Leading()"
4241 DETAIL: Leading hint requires at least two relations.
4250 ------------------------------------------
4252 Merge Cond: (t1.c1 = t2.c1)
4254 Merge Cond: (t1.c1 = t3.c1)
4255 -> Index Scan using t1_i1 on t1
4256 -> Index Scan using t3_i1 on t3
4264 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4265 JOIN s1.t2 ON (t1.c1 = t2.c1)
4266 JOIN s1.t3 ON (t1.c1 = t3.c1);
4267 INFO: hint syntax error at or near "Leading(t1)"
4268 DETAIL: Leading hint requires at least two relations.
4277 ------------------------------------------
4279 Merge Cond: (t1.c1 = t2.c1)
4281 Merge Cond: (t1.c1 = t3.c1)
4282 -> Index Scan using t1_i1 on t1
4283 -> Index Scan using t3_i1 on t3
4291 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4292 JOIN s1.t2 ON (t1.c1 = t2.c1)
4293 JOIN s1.t3 ON (t1.c1 = t3.c1);
4302 ------------------------------------------
4305 Merge Cond: (t1.c1 = t2.c1)
4306 -> Index Scan using t1_i1 on t1
4310 -> Index Scan using t3_i1 on t3
4311 Index Cond: (c1 = t1.c1)
4315 /*+Leading(t1 t2 t3)*/
4316 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4317 JOIN s1.t2 ON (t1.c1 = t2.c1)
4318 JOIN s1.t3 ON (t1.c1 = t3.c1);
4327 ------------------------------------------
4330 Merge Cond: (t1.c1 = t2.c1)
4331 -> Index Scan using t1_i1 on t1
4335 -> Index Scan using t3_i1 on t3
4336 Index Cond: (c1 = t1.c1)
4340 ---- No. L-3-6 specified Inner/Outer side
4344 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;
4345 INFO: hint syntax error at or near "Leading((t2))"
4346 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4355 ------------------------------------------------
4357 Join Filter: (t1.c1 = t4.c1)
4359 Merge Cond: (t1.c1 = t2.c1)
4361 Merge Cond: (t1.c1 = t3.c1)
4362 -> Index Scan using t1_i1 on t1
4363 -> Index Scan using t3_i1 on t3
4367 -> Index Scan using t4_i1 on t4
4368 Index Cond: (c1 = t3.c1)
4372 /*+Leading((t2 t3))*/
4373 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 ------------------------------------------------
4384 Join Filter: (t1.c1 = t4.c1)
4386 Join Filter: (t2.c1 = t1.c1)
4388 -> Index Scan using t2_i1 on t2
4389 -> Index Scan using t3_i1 on t3
4390 Index Cond: (c1 = t2.c1)
4391 -> Index Scan using t1_i1 on t1
4392 Index Cond: (c1 = t3.c1)
4393 -> Index Scan using t4_i1 on t4
4394 Index Cond: (c1 = t3.c1)
4398 /*+Leading((t2 t3 t4))*/
4399 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;
4400 INFO: hint syntax error at or near "Leading((t2 t3 t4))"
4401 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4410 ------------------------------------------------
4412 Join Filter: (t1.c1 = t4.c1)
4414 Merge Cond: (t1.c1 = t2.c1)
4416 Merge Cond: (t1.c1 = t3.c1)
4417 -> Index Scan using t1_i1 on t1
4418 -> Index Scan using t3_i1 on t3
4422 -> Index Scan using t4_i1 on t4
4423 Index Cond: (c1 = t3.c1)
4427 /*+Leading(((t1 t2) (t3 t4)))*/
4428 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;
4431 Leading(((t1 t2) (t3 t4)))
4437 ------------------------------------------
4439 Hash Cond: (t1.c1 = t3.c1)
4441 Merge Cond: (t1.c1 = t2.c1)
4442 -> Index Scan using t1_i1 on t1
4448 Hash Cond: (t3.c1 = t4.c1)
4455 /*+Leading((((t1 t3) t4) t2)))*/
4456 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;
4457 INFO: hint syntax error at or near ")"
4458 DETAIL: Unrecognized hint keyword ")".
4461 Leading((((t1 t3) t4) t2))
4467 ------------------------------------------------
4469 Merge Cond: (t1.c1 = t2.c1)
4471 Merge Cond: (t1.c1 = t4.c1)
4473 Merge Cond: (t1.c1 = t3.c1)
4474 -> Index Scan using t1_i1 on t1
4475 -> Index Scan using t3_i1 on t3
4476 -> Index Scan using t4_i1 on t4
4483 /*+Leading((t1 (t3 (t4 t2))))*/
4484 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;
4487 Leading((t1 (t3 (t4 t2))))
4493 ------------------------------------------------------
4495 Merge Cond: (t1.c1 = t2.c1)
4496 -> Index Scan using t1_i1 on t1
4500 Hash Cond: (t3.c1 = t2.c1)
4504 Hash Cond: (t4.c1 = t2.c1)