2 SET pg_hint_plan.enable_hint TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
6 SET max_parallel_workers_per_gather TO 0;
7 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
9 ------------------------------------------------
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 = t1.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 ----------------------------------------------------
69 Merge Cond: (t_1.c1 = t_2.c1)
71 Merge Cond: (t_1.c1 = t_3.c1)
72 -> Index Scan using t1_i1 on t1 t_1
73 -> Index Scan using t3_i1 on t3 t_3
77 -> Index Scan using t4_i1 on t4 t_4
78 Index Cond: (c1 = t_1.c1)
82 /*+Leading(t_4 t_2 t_3 t_1)*/
83 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;
86 Leading(t_4 t_2 t_3 t_1)
92 ----------------------------------------------------
94 Merge Cond: (t_1.c1 = t_2.c1)
95 -> Index Scan using t1_i1 on t1 t_1
99 Join Filter: (t_2.c1 = t_3.c1)
101 Hash Cond: (t_4.c1 = t_2.c1)
102 -> Seq Scan on t4 t_4
104 -> Seq Scan on t2 t_2
105 -> Index Scan using t3_i1 on t3 t_3
106 Index Cond: (c1 = t_4.c1)
110 ---- No. L-1-2 specified schema name in the hint option
113 /*+Leading(t4 t2 t3 t1)*/
114 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;
123 ------------------------------------------------
125 Merge Cond: (t1.c1 = t2.c1)
126 -> Index Scan using t1_i1 on t1
130 Join Filter: (t2.c1 = t3.c1)
132 Hash Cond: (t4.c1 = t2.c1)
136 -> Index Scan using t3_i1 on t3
137 Index Cond: (c1 = t4.c1)
141 /*+Leading(s1.t4 s1.t2 s1.t3 s1.t1)*/
142 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;
146 Leading(s1.t4 s1.t2 s1.t3 s1.t1)
151 ------------------------------------------------
154 Merge Cond: (t1.c1 = t2.c1)
156 Merge Cond: (t1.c1 = t3.c1)
157 -> Index Scan using t1_i1 on t1
158 -> Index Scan using t3_i1 on t3
162 -> Index Scan using t4_i1 on t4
163 Index Cond: (c1 = t1.c1)
167 ---- No. L-1-3 table doesn't exist in the hint option
170 /*+Leading(t4 t2 t3 t1)*/
171 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;
180 ------------------------------------------------
182 Merge Cond: (t1.c1 = t2.c1)
183 -> Index Scan using t1_i1 on t1
187 Join Filter: (t2.c1 = t3.c1)
189 Hash Cond: (t4.c1 = t2.c1)
193 -> Index Scan using t3_i1 on t3
194 Index Cond: (c1 = t4.c1)
198 /*+Leading(t5 t2 t3 t1)*/
199 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;
208 ------------------------------------------------
211 Merge Cond: (t1.c1 = t2.c1)
213 Merge Cond: (t1.c1 = t3.c1)
214 -> Index Scan using t1_i1 on t1
215 -> Index Scan using t3_i1 on t3
219 -> Index Scan using t4_i1 on t4
220 Index Cond: (c1 = t1.c1)
224 ---- No. L-1-4 conflict table name
227 /*+Leading(t4 t2 t3 t1)*/
228 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;
237 ------------------------------------------------
239 Merge Cond: (t1.c1 = t2.c1)
240 -> Index Scan using t1_i1 on t1
244 Join Filter: (t2.c1 = t3.c1)
246 Hash Cond: (t4.c1 = t2.c1)
250 -> Index Scan using t3_i1 on t3
251 Index Cond: (c1 = t4.c1)
255 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;
257 ------------------------------------------------
259 Merge Cond: (t1.c1 = t1_1.c1)
261 Merge Cond: (t1.c1 = t2.c1)
263 Merge Cond: (t1.c1 = t3.c1)
264 -> Index Scan using t1_i1 on t1
265 -> Index Scan using t3_i1 on t3
271 -> Seq Scan on t1 t1_1
274 /*+Leading(t1 t2 t3 t1)*/
275 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;
276 INFO: pg_hint_plan: hint syntax error at or near "Leading(t1 t2 t3 t1)"
277 DETAIL: Relation name "t1" is ambiguous.
286 ------------------------------------------------
288 Merge Cond: (t1.c1 = t1_1.c1)
290 Merge Cond: (t1.c1 = t2.c1)
292 Merge Cond: (t1.c1 = t3.c1)
293 -> Index Scan using t1_i1 on t1
294 -> Index Scan using t3_i1 on t3
300 -> Seq Scan on t1 t1_1
303 /*+Leading(s1.t1 t2 t3 s2.t1)*/
304 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;
308 Leading(s1.t1 t2 t3 s2.t1)
313 ------------------------------------------------
315 Merge Cond: (t1.c1 = t1_1.c1)
317 Merge Cond: (t1.c1 = t2.c1)
319 Merge Cond: (t1.c1 = t3.c1)
320 -> Index Scan using t1_i1 on t1
321 -> Index Scan using t3_i1 on t3
327 -> Seq Scan on t1 t1_1
330 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;
332 ------------------------------------------------
334 Merge Cond: (t1.c1 = s2t1.c1)
336 Merge Cond: (t1.c1 = t2.c1)
338 Merge Cond: (t1.c1 = t3.c1)
339 -> Index Scan using t1_i1 on t1
340 -> Index Scan using t3_i1 on t3
346 -> Seq Scan on t1 s2t1
349 /*+Leading(s2t1 t1 t3 t2)*/
350 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;
353 Leading(s2t1 t1 t3 t2)
359 ------------------------------------------------
361 Merge Cond: (t1.c1 = t2.c1)
364 Merge Cond: (t1.c1 = s2t1.c1)
365 -> Index Scan using t1_i1 on t1
368 -> Seq Scan on t1 s2t1
369 -> Index Scan using t3_i1 on t3
370 Index Cond: (c1 = t1.c1)
377 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;
379 ------------------------------------------------------------------------
381 InitPlan 1 (returns $1)
385 Merge Cond: (t1_1.c1 = t2_1.c1)
387 Merge Cond: (t1_1.c1 = t3_1.c1)
388 -> Index Only Scan using t1_i1 on t1 t1_1
389 -> Index Only Scan using t3_i1 on t3 t3_1
392 -> Seq Scan on t2 t2_1
393 -> Index Only Scan using t4_i1 on t4 t4_1
394 Index Cond: (c1 = t1_1.c1)
396 Merge Cond: (t1.c1 = t2.c1)
398 Merge Cond: (t1.c1 = t3.c1)
399 -> Index Scan using t1_i1 on t1
400 -> Index Scan using t3_i1 on t3
404 -> Index Scan using t4_i1 on t4
405 Index Cond: (c1 = t1.c1)
408 /*+Leading(t4 t2 t3 t1)*/
409 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;
418 ------------------------------------------------------------------------
420 Merge Cond: (t1.c1 = t2.c1)
421 InitPlan 1 (returns $1)
424 Merge Cond: (t1_1.c1 = t2_1.c1)
425 -> Index Only Scan using t1_i1 on t1 t1_1
429 Join Filter: (t2_1.c1 = t3_1.c1)
431 Hash Cond: (t4_1.c1 = t2_1.c1)
432 -> Seq Scan on t4 t4_1
434 -> Seq Scan on t2 t2_1
435 -> Index Only Scan using t3_i1 on t3 t3_1
436 Index Cond: (c1 = t4_1.c1)
437 -> Index Scan using t1_i1 on t1
441 Join Filter: (t2.c1 = t3.c1)
443 Hash Cond: (t4.c1 = t2.c1)
447 -> Index Scan using t3_i1 on t3
448 Index Cond: (c1 = t4.c1)
451 /*+Leading(st1 st2 st3 st4)Leading(t4 t2 t3 t1)*/
452 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;
455 Leading(st1 st2 st3 st4)
462 --------------------------------------------------------------------------------------------
464 Merge Cond: (t1.c1 = t2.c1)
465 -> Index Scan using t1_i1 on t1
469 Join Filter: (t2.c1 = t3.c1)
471 Hash Cond: (t4.c1 = t2.c1)
475 -> Index Scan using t3_i1 on t3
476 Index Cond: (c1 = t4.c1)
480 One-Time Filter: ((t1.c1 = t2.c1) AND (t1.c1 = t3.c1) AND (t1.c1 = t4.c1))
484 -> Seq Scan on t1 st1
486 -> Seq Scan on t2 st2
488 -> Seq Scan on t3 st3
490 -> Seq Scan on t4 st4
494 ---- No. L-1-5 conflict table name
497 /*+Leading(t4 t2 t3 t1)*/
498 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;
507 ------------------------------------------------
509 Merge Cond: (t1.c1 = t2.c1)
510 -> Index Scan using t1_i1 on t1
514 Join Filter: (t2.c1 = t3.c1)
516 Hash Cond: (t4.c1 = t2.c1)
520 -> Index Scan using t3_i1 on t3
521 Index Cond: (c1 = t4.c1)
525 /*+Leading(t4 t2 t3 t1 t4)*/
526 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;
527 INFO: pg_hint_plan: hint syntax error at or near "Leading(t4 t2 t3 t1 t4)"
528 DETAIL: Relation name "t4" is duplicated.
534 Leading(t4 t2 t3 t1 t4)
537 ------------------------------------------------
540 Merge Cond: (t1.c1 = t2.c1)
542 Merge Cond: (t1.c1 = t3.c1)
543 -> Index Scan using t1_i1 on t1
544 -> Index Scan using t3_i1 on t3
548 -> Index Scan using t4_i1 on t4
549 Index Cond: (c1 = t1.c1)
552 /*+Leading(t4 t2 t3 t4)*/
553 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;
554 INFO: pg_hint_plan: hint syntax error at or near "Leading(t4 t2 t3 t4)"
555 DETAIL: Relation name "t4" is duplicated.
564 ------------------------------------------------
567 Merge Cond: (t1.c1 = t2.c1)
569 Merge Cond: (t1.c1 = t3.c1)
570 -> Index Scan using t1_i1 on t1
571 -> Index Scan using t3_i1 on t3
575 -> Index Scan using t4_i1 on t4
576 Index Cond: (c1 = t1.c1)
580 /*+Leading(t4 t2 t3 t1 t4 t2 t3 t1)*/
581 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;
582 INFO: pg_hint_plan: hint syntax error at or near "Leading(t4 t2 t3 t1 t4 t2 t3 t1)"
583 DETAIL: Relation name "t4" is duplicated.
589 Leading(t4 t2 t3 t1 t4 t2 t3 t1)
592 ------------------------------------------------
595 Merge Cond: (t1.c1 = t2.c1)
597 Merge Cond: (t1.c1 = t3.c1)
598 -> Index Scan using t1_i1 on t1
599 -> Index Scan using t3_i1 on t3
603 -> Index Scan using t4_i1 on t4
604 Index Cond: (c1 = t1.c1)
607 /*+Leading(t4 t2 t2 t4)*/
608 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;
609 INFO: pg_hint_plan: hint syntax error at or near "Leading(t4 t2 t2 t4)"
610 DETAIL: Relation name "t2" is duplicated.
619 ------------------------------------------------
622 Merge Cond: (t1.c1 = t2.c1)
624 Merge Cond: (t1.c1 = t3.c1)
625 -> Index Scan using t1_i1 on t1
626 -> Index Scan using t3_i1 on t3
630 -> Index Scan using t4_i1 on t4
631 Index Cond: (c1 = t1.c1)
635 ---- No. L-1-6 object type for the hint
638 /*+Leading(t4 t2 t3 t1)*/
639 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;
648 ------------------------------------------------
650 Merge Cond: (t1.c1 = t2.c1)
651 -> Index Scan using t1_i1 on t1
655 Join Filter: (t2.c1 = t3.c1)
657 Hash Cond: (t4.c1 = t2.c1)
661 -> Index Scan using t3_i1 on t3
662 Index Cond: (c1 = t4.c1)
666 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;
668 -----------------------------------------------------
670 Hash Cond: (t1.c1 = t4.c1)
672 Hash Cond: (t1.c1 = t3.c1)
674 Hash Cond: (t1.c1 = t2.c1)
676 -> Seq Scan on p1 t1_1
677 -> Seq Scan on p1c1 t1_2
678 -> Seq Scan on p1c2 t1_3
679 -> Seq Scan on p1c3 t1_4
682 -> Seq Scan on p1 t2_1
683 -> Seq Scan on p1c1 t2_2
684 -> Seq Scan on p1c2 t2_3
685 -> Seq Scan on p1c3 t2_4
688 -> Seq Scan on p1 t3_1
689 -> Seq Scan on p1c1 t3_2
690 -> Seq Scan on p1c2 t3_3
691 -> Seq Scan on p1c3 t3_4
694 -> Seq Scan on p1 t4_1
695 -> Seq Scan on p1c1 t4_2
696 -> Seq Scan on p1c2 t4_3
697 -> Seq Scan on p1c3 t4_4
700 /*+Leading(t4 t3 t2 t1)*/
701 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;
710 -----------------------------------------------------
712 Hash Cond: (t2.c1 = t1.c1)
714 Hash Cond: (t3.c1 = t2.c1)
716 Hash Cond: (t3.c1 = t4.c1)
718 -> Seq Scan on p1 t3_1
719 -> Seq Scan on p1c1 t3_2
720 -> Seq Scan on p1c2 t3_3
721 -> Seq Scan on p1c3 t3_4
724 -> Seq Scan on p1 t4_1
725 -> Seq Scan on p1c1 t4_2
726 -> Seq Scan on p1c2 t4_3
727 -> Seq Scan on p1c3 t4_4
730 -> Seq Scan on p1 t2_1
731 -> Seq Scan on p1c1 t2_2
732 -> Seq Scan on p1c2 t2_3
733 -> Seq Scan on p1c3 t2_4
736 -> Seq Scan on p1 t1_1
737 -> Seq Scan on p1c1 t1_2
738 -> Seq Scan on p1c2 t1_3
739 -> Seq Scan on p1c3 t1_4
743 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;
745 --------------------------------------------
747 Hash Cond: (t1.c1 = t4.c1)
749 Hash Cond: (t1.c1 = t3.c1)
751 Hash Cond: (t1.c1 = t2.c1)
752 -> Seq Scan on ul1 t1
754 -> Seq Scan on ul1 t2
756 -> Seq Scan on ul1 t3
758 -> Seq Scan on ul1 t4
761 /*+Leading(t4 t3 t2 t1)*/
762 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;
771 --------------------------------------------
773 Hash Cond: (t2.c1 = t1.c1)
775 Hash Cond: (t3.c1 = t2.c1)
777 Hash Cond: (t3.c1 = t4.c1)
778 -> Seq Scan on ul1 t3
780 -> Seq Scan on ul1 t4
782 -> Seq Scan on ul1 t2
784 -> Seq Scan on ul1 t1
788 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
789 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;
791 --------------------------------------------
793 Hash Cond: (t1.c1 = t4.c1)
795 Hash Cond: (t1.c1 = t3.c1)
797 Hash Cond: (t1.c1 = t2.c1)
798 -> Seq Scan on tm1 t1
800 -> Seq Scan on tm1 t2
802 -> Seq Scan on tm1 t3
804 -> Seq Scan on tm1 t4
807 /*+Leading(t4 t3 t2 t1)*/
808 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;
817 --------------------------------------------
819 Hash Cond: (t2.c1 = t1.c1)
821 Hash Cond: (t3.c1 = t2.c1)
823 Hash Cond: (t3.c1 = t4.c1)
824 -> Seq Scan on tm1 t3
826 -> Seq Scan on tm1 t4
828 -> Seq Scan on tm1 t2
830 -> Seq Scan on tm1 t1
834 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;
836 -------------------------------------------------
838 Hash Cond: (t1.oid = t4.oid)
840 Hash Cond: (t1.oid = t3.oid)
842 Hash Cond: (t1.oid = t2.oid)
843 -> Seq Scan on pg_class t1
845 -> Seq Scan on pg_class t2
847 -> Seq Scan on pg_class t3
849 -> Seq Scan on pg_class t4
852 /*+Leading(t4 t3 t2 t1)*/
853 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;
862 -------------------------------------------------
864 Hash Cond: (t2.oid = t1.oid)
866 Hash Cond: (t3.oid = t2.oid)
868 Hash Cond: (t3.oid = t4.oid)
869 -> Seq Scan on pg_class t3
871 -> Seq Scan on pg_class t4
873 -> Seq Scan on pg_class t2
875 -> Seq Scan on pg_class t1
881 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;
883 --------------------------------------------
885 Join Filter: (t1.c1 = t4.c1)
887 Join Filter: (t1.c1 = t3.c1)
889 Join Filter: (t1.c1 = t2.c1)
890 -> Function Scan on f1 t1
891 -> Function Scan on f1 t2
892 -> Function Scan on f1 t3
893 -> Function Scan on f1 t4
896 /*+Leading(t4 t3 t2 t1)*/
897 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;
906 --------------------------------------------
908 Join Filter: (t2.c1 = t1.c1)
910 Join Filter: (t3.c1 = t2.c1)
912 Join Filter: (t3.c1 = t4.c1)
913 -> Function Scan on f1 t3
914 -> Function Scan on f1 t4
915 -> Function Scan on f1 t2
916 -> Function Scan on f1 t1
920 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2')) 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;
922 -------------------------------------------------------
924 Join Filter: ("*VALUES*".column1 = t4.c1)
926 Join Filter: ("*VALUES*".column1 = t3.c1)
928 Hash Cond: (t2.c1 = "*VALUES*".column1)
931 -> Values Scan on "*VALUES*"
932 -> Index Scan using t3_i1 on t3
933 Index Cond: (c1 = t2.c1)
934 -> Index Scan using t4_i1 on t4
935 Index Cond: (c1 = t3.c1)
938 /*+Leading(t4 t3 t2 t1)*/
939 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2')) 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;
948 -------------------------------------------------------
950 Join Filter: ("*VALUES*".column1 = t4.c1)
952 Join Filter: ("*VALUES*".column1 = t3.c1)
954 Hash Cond: (t2.c1 = "*VALUES*".column1)
957 -> Values Scan on "*VALUES*"
958 -> Index Scan using t3_i1 on t3
959 Index Cond: (c1 = t2.c1)
960 -> Index Scan using t4_i1 on t4
961 Index Cond: (c1 = t3.c1)
965 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;
967 ----------------------------------------------------
969 Merge Cond: (ct1.c1 = ct3.c1)
972 Hash Cond: (st1.c1 = st4.c1)
974 Hash Cond: (st1.c1 = st3.c1)
976 Hash Cond: (st1.c1 = st2.c1)
977 -> Seq Scan on t1 st1
979 -> Seq Scan on t1 st2
981 -> Seq Scan on t1 st3
983 -> Seq Scan on t1 st4
985 Merge Cond: (ct1.c1 = ct2.c1)
988 -> CTE Scan on c1 ct1
991 -> CTE Scan on c1 ct2
994 Merge Cond: (ct3.c1 = ct4.c1)
997 -> CTE Scan on c1 ct3
1000 -> CTE Scan on c1 ct4
1003 /*+Leading(ct4 ct3 ct2 ct1)Leading(st4 st3 st2 st1)*/
1004 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;
1007 Leading(ct4 ct3 ct2 ct1)
1008 Leading(st4 st3 st2 st1)
1014 ---------------------------------------------------------
1016 Merge Cond: (ct1.c1 = ct2.c1)
1019 Hash Cond: (st2.c1 = st1.c1)
1021 Hash Cond: (st3.c1 = st2.c1)
1023 Hash Cond: (st3.c1 = st4.c1)
1024 -> Seq Scan on t1 st3
1026 -> Seq Scan on t1 st4
1028 -> Seq Scan on t1 st2
1030 -> Seq Scan on t1 st1
1033 -> CTE Scan on c1 ct1
1036 Merge Cond: (ct2.c1 = ct3.c1)
1039 -> CTE Scan on c1 ct2
1042 Merge Cond: (ct3.c1 = ct4.c1)
1045 -> CTE Scan on c1 ct3
1048 -> CTE Scan on c1 ct4
1052 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;
1054 ------------------------------------------------
1056 Hash Cond: (v1t1.c1 = v1t1_3.c1)
1058 Hash Cond: (v1t1.c1 = v1t1_2.c1)
1060 Hash Cond: (v1t1.c1 = v1t1_1.c1)
1061 -> Seq Scan on t1 v1t1
1063 -> Seq Scan on t1 v1t1_1
1065 -> Seq Scan on t1 v1t1_2
1067 -> Seq Scan on t1 v1t1_3
1070 /*+Leading(t4 t3 t2 t1)*/
1071 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;
1075 Leading(t4 t3 t2 t1)
1080 ------------------------------------------------
1082 Hash Cond: (v1t1.c1 = v1t1_3.c1)
1084 Hash Cond: (v1t1.c1 = v1t1_2.c1)
1086 Hash Cond: (v1t1.c1 = v1t1_1.c1)
1087 -> Seq Scan on t1 v1t1
1089 -> Seq Scan on t1 v1t1_1
1091 -> Seq Scan on t1 v1t1_2
1093 -> Seq Scan on t1 v1t1_3
1096 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;
1098 ---------------------------------------------
1100 Hash Cond: (v1t1.c1 = t4.c1)
1102 Hash Cond: (v1t1.c1 = v1t1_.c1)
1104 Hash Cond: (t3.c1 = v1t1.c1)
1107 -> Seq Scan on t1 v1t1
1109 -> Seq Scan on t1 v1t1_
1114 /*+Leading(t4 v1t1_ v1t1 t3)*/
1115 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;
1118 Leading(t4 v1t1_ v1t1 t3)
1124 ----------------------------------------------
1126 Hash Cond: (v1t1.c1 = t3.c1)
1128 Hash Cond: (v1t1_.c1 = v1t1.c1)
1130 Hash Cond: (t4.c1 = v1t1_.c1)
1133 -> Seq Scan on t1 v1t1_
1135 -> Seq Scan on t1 v1t1
1141 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;
1143 ------------------------------------------------
1146 Merge Cond: (t1.c1 = t2.c1)
1148 Merge Cond: (t1.c1 = t3.c1)
1149 -> Index Scan using t1_i1 on t1
1150 -> Index Scan using t3_i1 on t3
1154 -> Index Only Scan using t4_i1 on t4
1155 Index Cond: (c1 = t1.c1)
1158 /*+Leading(st4 t2 t3 t1)*/
1159 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;
1163 Leading(st4 t2 t3 t1)
1168 ------------------------------------------------
1171 Merge Cond: (t1.c1 = t2.c1)
1173 Merge Cond: (t1.c1 = t3.c1)
1174 -> Index Scan using t1_i1 on t1
1175 -> Index Scan using t3_i1 on t3
1179 -> Index Only Scan using t4_i1 on t4
1180 Index Cond: (c1 = t1.c1)
1183 /*+Leading(t4 t2 t3 t1)*/
1184 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;
1187 Leading(t4 t2 t3 t1)
1193 ------------------------------------------------
1195 Merge Cond: (t1.c1 = t2.c1)
1196 -> Index Scan using t1_i1 on t1
1200 Join Filter: (t2.c1 = t3.c1)
1202 Hash Cond: (t4.c1 = t2.c1)
1206 -> Index Scan using t3_i1 on t3
1207 Index Cond: (c1 = t4.c1)
1211 ---- No. L-2-1 some complexity query blocks
1214 EXPLAIN (COSTS false)
1215 SELECT max(bmt1.c1), (
1216 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)'
1218 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)'
1220 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)'
1223 -------------------------------------------------------------------
1225 InitPlan 1 (returns $0)
1228 Join Filter: (b1t1.c1 = b1t4.c1)
1230 Join Filter: (b1t1.c1 = b1t3.c1)
1232 Join Filter: (b1t1.c1 = b1t2.c1)
1233 -> Tid Scan on t1 b1t1
1234 TID Cond: (ctid = '(1,1)'::tid)
1235 -> Seq Scan on t2 b1t2
1236 Filter: (ctid = '(1,1)'::tid)
1237 -> Tid Scan on t3 b1t3
1238 TID Cond: (ctid = '(1,1)'::tid)
1239 -> Tid Scan on t4 b1t4
1240 TID Cond: (ctid = '(1,1)'::tid)
1241 InitPlan 2 (returns $1)
1244 Join Filter: (b2t1.c1 = b2t4.c1)
1246 Join Filter: (b2t1.c1 = b2t3.c1)
1248 Join Filter: (b2t1.c1 = b2t2.c1)
1249 -> Tid Scan on t1 b2t1
1250 TID Cond: (ctid = '(1,1)'::tid)
1251 -> Seq Scan on t2 b2t2
1252 Filter: (ctid = '(1,1)'::tid)
1253 -> Tid Scan on t3 b2t3
1254 TID Cond: (ctid = '(1,1)'::tid)
1255 -> Tid Scan on t4 b2t4
1256 TID Cond: (ctid = '(1,1)'::tid)
1258 Join Filter: (bmt1.c1 = bmt4.c1)
1260 Join Filter: (bmt1.c1 = bmt3.c1)
1262 Join Filter: (bmt1.c1 = bmt2.c1)
1263 -> Tid Scan on t1 bmt1
1264 TID Cond: (ctid = '(1,1)'::tid)
1265 -> Seq Scan on t2 bmt2
1266 Filter: (ctid = '(1,1)'::tid)
1267 -> Tid Scan on t3 bmt3
1268 TID Cond: (ctid = '(1,1)'::tid)
1269 -> Tid Scan on t4 bmt4
1270 TID Cond: (ctid = '(1,1)'::tid)
1274 Leading(bmt1 bmt2 bmt3 bmt4)
1275 Leading(b1t2 b1t3 b1t4 b1t1)
1276 Leading(b2t3 b2t4 b2t1 b2t2)
1278 EXPLAIN (COSTS false)
1279 SELECT max(bmt1.c1), (
1280 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)'
1282 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)'
1284 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)'
1288 Leading(bmt1 bmt2 bmt3 bmt4)
1289 Leading(b1t2 b1t3 b1t4 b1t1)
1290 Leading(b2t3 b2t4 b2t1 b2t2)
1296 -------------------------------------------------------------------
1298 InitPlan 1 (returns $0)
1301 Join Filter: (b1t2.c1 = b1t1.c1)
1303 Join Filter: (b1t2.c1 = b1t4.c1)
1305 Join Filter: (b1t2.c1 = b1t3.c1)
1306 -> Seq Scan on t2 b1t2
1307 Filter: (ctid = '(1,1)'::tid)
1308 -> Tid Scan on t3 b1t3
1309 TID Cond: (ctid = '(1,1)'::tid)
1310 -> Tid Scan on t4 b1t4
1311 TID Cond: (ctid = '(1,1)'::tid)
1312 -> Tid Scan on t1 b1t1
1313 TID Cond: (ctid = '(1,1)'::tid)
1314 InitPlan 2 (returns $1)
1317 Join Filter: (b2t1.c1 = b2t2.c1)
1319 Join Filter: (b2t3.c1 = b2t1.c1)
1321 Join Filter: (b2t3.c1 = b2t4.c1)
1322 -> Tid Scan on t3 b2t3
1323 TID Cond: (ctid = '(1,1)'::tid)
1324 -> Tid Scan on t4 b2t4
1325 TID Cond: (ctid = '(1,1)'::tid)
1326 -> Tid Scan on t1 b2t1
1327 TID Cond: (ctid = '(1,1)'::tid)
1328 -> Seq Scan on t2 b2t2
1329 Filter: (ctid = '(1,1)'::tid)
1331 Join Filter: (bmt1.c1 = bmt4.c1)
1333 Join Filter: (bmt1.c1 = bmt3.c1)
1335 Join Filter: (bmt1.c1 = bmt2.c1)
1336 -> Tid Scan on t1 bmt1
1337 TID Cond: (ctid = '(1,1)'::tid)
1338 -> Seq Scan on t2 bmt2
1339 Filter: (ctid = '(1,1)'::tid)
1340 -> Tid Scan on t3 bmt3
1341 TID Cond: (ctid = '(1,1)'::tid)
1342 -> Tid Scan on t4 bmt4
1343 TID Cond: (ctid = '(1,1)'::tid)
1347 EXPLAIN (COSTS false)
1348 SELECT max(bmt1.c1), (
1349 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)'
1351 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)'
1353 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)'
1355 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)'
1358 -------------------------------------------------------------------
1360 InitPlan 1 (returns $0)
1363 Join Filter: (b1t1.c1 = b1t4.c1)
1365 Join Filter: (b1t1.c1 = b1t3.c1)
1367 Join Filter: (b1t1.c1 = b1t2.c1)
1368 -> Tid Scan on t1 b1t1
1369 TID Cond: (ctid = '(1,1)'::tid)
1370 -> Seq Scan on t2 b1t2
1371 Filter: (ctid = '(1,1)'::tid)
1372 -> Tid Scan on t3 b1t3
1373 TID Cond: (ctid = '(1,1)'::tid)
1374 -> Tid Scan on t4 b1t4
1375 TID Cond: (ctid = '(1,1)'::tid)
1376 InitPlan 2 (returns $1)
1379 Join Filter: (b2t1.c1 = b2t4.c1)
1381 Join Filter: (b2t1.c1 = b2t3.c1)
1383 Join Filter: (b2t1.c1 = b2t2.c1)
1384 -> Tid Scan on t1 b2t1
1385 TID Cond: (ctid = '(1,1)'::tid)
1386 -> Seq Scan on t2 b2t2
1387 Filter: (ctid = '(1,1)'::tid)
1388 -> Tid Scan on t3 b2t3
1389 TID Cond: (ctid = '(1,1)'::tid)
1390 -> Tid Scan on t4 b2t4
1391 TID Cond: (ctid = '(1,1)'::tid)
1392 InitPlan 3 (returns $2)
1395 Join Filter: (b3t1.c1 = b3t4.c1)
1397 Join Filter: (b3t1.c1 = b3t3.c1)
1399 Join Filter: (b3t1.c1 = b3t2.c1)
1400 -> Tid Scan on t1 b3t1
1401 TID Cond: (ctid = '(1,1)'::tid)
1402 -> Seq Scan on t2 b3t2
1403 Filter: (ctid = '(1,1)'::tid)
1404 -> Tid Scan on t3 b3t3
1405 TID Cond: (ctid = '(1,1)'::tid)
1406 -> Tid Scan on t4 b3t4
1407 TID Cond: (ctid = '(1,1)'::tid)
1409 Join Filter: (bmt1.c1 = bmt4.c1)
1411 Join Filter: (bmt1.c1 = bmt3.c1)
1413 Join Filter: (bmt1.c1 = bmt2.c1)
1414 -> Tid Scan on t1 bmt1
1415 TID Cond: (ctid = '(1,1)'::tid)
1416 -> Seq Scan on t2 bmt2
1417 Filter: (ctid = '(1,1)'::tid)
1418 -> Tid Scan on t3 bmt3
1419 TID Cond: (ctid = '(1,1)'::tid)
1420 -> Tid Scan on t4 bmt4
1421 TID Cond: (ctid = '(1,1)'::tid)
1425 Leading(bmt1 bmt2 bmt3 bmt4)
1426 Leading(b1t2 b1t3 b1t4 b1t1)
1427 Leading(b2t3 b2t4 b2t1 b2t2)
1428 Leading(b3t4 b3t1 b3t2 b3t3)
1430 EXPLAIN (COSTS false)
1431 SELECT max(bmt1.c1), (
1432 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)'
1434 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)'
1436 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)'
1438 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)'
1442 Leading(bmt1 bmt2 bmt3 bmt4)
1443 Leading(b1t2 b1t3 b1t4 b1t1)
1444 Leading(b2t3 b2t4 b2t1 b2t2)
1445 Leading(b3t4 b3t1 b3t2 b3t3)
1451 -------------------------------------------------------------------
1453 InitPlan 1 (returns $0)
1456 Join Filter: (b1t2.c1 = b1t1.c1)
1458 Join Filter: (b1t2.c1 = b1t4.c1)
1460 Join Filter: (b1t2.c1 = b1t3.c1)
1461 -> Seq Scan on t2 b1t2
1462 Filter: (ctid = '(1,1)'::tid)
1463 -> Tid Scan on t3 b1t3
1464 TID Cond: (ctid = '(1,1)'::tid)
1465 -> Tid Scan on t4 b1t4
1466 TID Cond: (ctid = '(1,1)'::tid)
1467 -> Tid Scan on t1 b1t1
1468 TID Cond: (ctid = '(1,1)'::tid)
1469 InitPlan 2 (returns $1)
1472 Join Filter: (b2t1.c1 = b2t2.c1)
1474 Join Filter: (b2t3.c1 = b2t1.c1)
1476 Join Filter: (b2t3.c1 = b2t4.c1)
1477 -> Tid Scan on t3 b2t3
1478 TID Cond: (ctid = '(1,1)'::tid)
1479 -> Tid Scan on t4 b2t4
1480 TID Cond: (ctid = '(1,1)'::tid)
1481 -> Tid Scan on t1 b2t1
1482 TID Cond: (ctid = '(1,1)'::tid)
1483 -> Seq Scan on t2 b2t2
1484 Filter: (ctid = '(1,1)'::tid)
1485 InitPlan 3 (returns $2)
1488 Join Filter: (b3t1.c1 = b3t3.c1)
1490 Join Filter: (b3t1.c1 = b3t2.c1)
1492 Join Filter: (b3t1.c1 = b3t4.c1)
1493 -> Tid Scan on t1 b3t1
1494 TID Cond: (ctid = '(1,1)'::tid)
1495 -> Tid Scan on t4 b3t4
1496 TID Cond: (ctid = '(1,1)'::tid)
1497 -> Seq Scan on t2 b3t2
1498 Filter: (ctid = '(1,1)'::tid)
1499 -> Tid Scan on t3 b3t3
1500 TID Cond: (ctid = '(1,1)'::tid)
1502 Join Filter: (bmt1.c1 = bmt4.c1)
1504 Join Filter: (bmt1.c1 = bmt3.c1)
1506 Join Filter: (bmt1.c1 = bmt2.c1)
1507 -> Tid Scan on t1 bmt1
1508 TID Cond: (ctid = '(1,1)'::tid)
1509 -> Seq Scan on t2 bmt2
1510 Filter: (ctid = '(1,1)'::tid)
1511 -> Tid Scan on t3 bmt3
1512 TID Cond: (ctid = '(1,1)'::tid)
1513 -> Tid Scan on t4 bmt4
1514 TID Cond: (ctid = '(1,1)'::tid)
1518 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)';
1520 -----------------------------------------------------------
1523 Join Filter: (bmt1.c1 = bmt4.c1)
1525 Join Filter: (bmt1.c1 = bmt3.c1)
1527 Join Filter: (bmt1.c1 = bmt2.c1)
1528 -> Tid Scan on t1 bmt1
1529 TID Cond: (ctid = '(1,1)'::tid)
1530 -> Seq Scan on t2 bmt2
1531 Filter: (ctid = '(1,1)'::tid)
1532 -> Tid Scan on t3 bmt3
1533 TID Cond: (ctid = '(1,1)'::tid)
1534 -> Tid Scan on t4 bmt4
1535 TID Cond: (ctid = '(1,1)'::tid)
1539 Leading(bmt4 bmt3 bmt2 bmt1)
1541 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)';
1544 Leading(bmt4 bmt3 bmt2 bmt1)
1550 -----------------------------------------------------------
1553 Join Filter: (bmt2.c1 = bmt1.c1)
1555 Join Filter: (bmt3.c1 = bmt2.c1)
1557 Join Filter: (bmt3.c1 = bmt4.c1)
1558 -> Tid Scan on t3 bmt3
1559 TID Cond: (ctid = '(1,1)'::tid)
1560 -> Tid Scan on t4 bmt4
1561 TID Cond: (ctid = '(1,1)'::tid)
1562 -> Seq Scan on t2 bmt2
1563 Filter: (ctid = '(1,1)'::tid)
1564 -> Tid Scan on t1 bmt1
1565 TID Cond: (ctid = '(1,1)'::tid)
1569 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)';
1571 -----------------------------------------------------------
1574 Join Filter: (bmt1.c1 = bmt4.c1)
1576 Join Filter: (bmt1.c1 = bmt3.c1)
1578 Join Filter: (bmt1.c1 = bmt2.c1)
1579 -> Tid Scan on t1 bmt1
1580 TID Cond: (ctid = '(1,1)'::tid)
1581 -> Seq Scan on t2 bmt2
1582 Filter: (ctid = '(1,1)'::tid)
1583 -> Tid Scan on t3 bmt3
1584 TID Cond: (ctid = '(1,1)'::tid)
1585 -> Tid Scan on t4 bmt4
1586 TID Cond: (ctid = '(1,1)'::tid)
1590 Leading(bmt4 bmt3 bmt2 bmt1)
1592 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)';
1595 Leading(bmt4 bmt3 bmt2 bmt1)
1601 -----------------------------------------------------------
1604 Join Filter: (bmt2.c1 = bmt1.c1)
1606 Join Filter: (bmt3.c1 = bmt2.c1)
1608 Join Filter: (bmt3.c1 = bmt4.c1)
1609 -> Tid Scan on t3 bmt3
1610 TID Cond: (ctid = '(1,1)'::tid)
1611 -> Tid Scan on t4 bmt4
1612 TID Cond: (ctid = '(1,1)'::tid)
1613 -> Seq Scan on t2 bmt2
1614 Filter: (ctid = '(1,1)'::tid)
1615 -> Tid Scan on t1 bmt1
1616 TID Cond: (ctid = '(1,1)'::tid)
1620 EXPLAIN (COSTS false)
1621 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)'
1623 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)'
1625 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)'
1629 -------------------------------------------------------------------
1631 InitPlan 1 (returns $0)
1634 Join Filter: (b1t1.c1 = b1t4.c1)
1636 Join Filter: (b1t1.c1 = b1t3.c1)
1638 Join Filter: (b1t1.c1 = b1t2.c1)
1639 -> Tid Scan on t1 b1t1
1640 TID Cond: (ctid = '(1,1)'::tid)
1641 -> Seq Scan on t2 b1t2
1642 Filter: (ctid = '(1,1)'::tid)
1643 -> Tid Scan on t3 b1t3
1644 TID Cond: (ctid = '(1,1)'::tid)
1645 -> Tid Scan on t4 b1t4
1646 TID Cond: (ctid = '(1,1)'::tid)
1647 InitPlan 2 (returns $1)
1650 Join Filter: (b2t1.c1 = b2t4.c1)
1652 Join Filter: (b2t1.c1 = b2t3.c1)
1654 Join Filter: (b2t1.c1 = b2t2.c1)
1655 -> Tid Scan on t1 b2t1
1656 TID Cond: (ctid = '(1,1)'::tid)
1657 -> Seq Scan on t2 b2t2
1658 Filter: (ctid = '(1,1)'::tid)
1659 -> Tid Scan on t3 b2t3
1660 TID Cond: (ctid = '(1,1)'::tid)
1661 -> Tid Scan on t4 b2t4
1662 TID Cond: (ctid = '(1,1)'::tid)
1664 Join Filter: (bmt1.c1 = bmt4.c1)
1666 Join Filter: (bmt1.c1 = bmt3.c1)
1668 Join Filter: (bmt1.c1 = bmt2.c1)
1669 -> Tid Scan on t1 bmt1
1670 TID Cond: (ctid = '(1,1)'::tid)
1671 Filter: ((c1 <> $0) AND (c1 <> $1))
1672 -> Seq Scan on t2 bmt2
1673 Filter: (ctid = '(1,1)'::tid)
1674 -> Tid Scan on t3 bmt3
1675 TID Cond: (ctid = '(1,1)'::tid)
1676 -> Tid Scan on t4 bmt4
1677 TID Cond: (ctid = '(1,1)'::tid)
1681 Leading(bmt1 bmt2 bmt3 bmt4)
1682 Leading(b1t2 b1t3 b1t4 b1t1)
1683 Leading(b2t3 b2t4 b2t1 b2t2)
1685 EXPLAIN (COSTS false)
1686 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)'
1688 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)'
1690 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)'
1695 Leading(bmt1 bmt2 bmt3 bmt4)
1696 Leading(b1t2 b1t3 b1t4 b1t1)
1697 Leading(b2t3 b2t4 b2t1 b2t2)
1703 -------------------------------------------------------------------
1705 InitPlan 1 (returns $0)
1708 Join Filter: (b1t2.c1 = b1t1.c1)
1710 Join Filter: (b1t2.c1 = b1t4.c1)
1712 Join Filter: (b1t2.c1 = b1t3.c1)
1713 -> Seq Scan on t2 b1t2
1714 Filter: (ctid = '(1,1)'::tid)
1715 -> Tid Scan on t3 b1t3
1716 TID Cond: (ctid = '(1,1)'::tid)
1717 -> Tid Scan on t4 b1t4
1718 TID Cond: (ctid = '(1,1)'::tid)
1719 -> Tid Scan on t1 b1t1
1720 TID Cond: (ctid = '(1,1)'::tid)
1721 InitPlan 2 (returns $1)
1724 Join Filter: (b2t1.c1 = b2t2.c1)
1726 Join Filter: (b2t3.c1 = b2t1.c1)
1728 Join Filter: (b2t3.c1 = b2t4.c1)
1729 -> Tid Scan on t3 b2t3
1730 TID Cond: (ctid = '(1,1)'::tid)
1731 -> Tid Scan on t4 b2t4
1732 TID Cond: (ctid = '(1,1)'::tid)
1733 -> Tid Scan on t1 b2t1
1734 TID Cond: (ctid = '(1,1)'::tid)
1735 -> Seq Scan on t2 b2t2
1736 Filter: (ctid = '(1,1)'::tid)
1738 Join Filter: (bmt1.c1 = bmt4.c1)
1740 Join Filter: (bmt1.c1 = bmt3.c1)
1742 Join Filter: (bmt1.c1 = bmt2.c1)
1743 -> Tid Scan on t1 bmt1
1744 TID Cond: (ctid = '(1,1)'::tid)
1745 Filter: ((c1 <> $0) AND (c1 <> $1))
1746 -> Seq Scan on t2 bmt2
1747 Filter: (ctid = '(1,1)'::tid)
1748 -> Tid Scan on t3 bmt3
1749 TID Cond: (ctid = '(1,1)'::tid)
1750 -> Tid Scan on t4 bmt4
1751 TID Cond: (ctid = '(1,1)'::tid)
1755 EXPLAIN (COSTS false)
1756 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)'
1758 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)'
1760 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)'
1762 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)'
1766 ------------------------------------------------------------------------------
1768 InitPlan 1 (returns $0)
1771 Join Filter: (b1t1.c1 = b1t4.c1)
1773 Join Filter: (b1t1.c1 = b1t3.c1)
1775 Join Filter: (b1t1.c1 = b1t2.c1)
1776 -> Tid Scan on t1 b1t1
1777 TID Cond: (ctid = '(1,1)'::tid)
1778 -> Seq Scan on t2 b1t2
1779 Filter: (ctid = '(1,1)'::tid)
1780 -> Tid Scan on t3 b1t3
1781 TID Cond: (ctid = '(1,1)'::tid)
1782 -> Tid Scan on t4 b1t4
1783 TID Cond: (ctid = '(1,1)'::tid)
1784 InitPlan 2 (returns $1)
1787 Join Filter: (b2t1.c1 = b2t4.c1)
1789 Join Filter: (b2t1.c1 = b2t3.c1)
1791 Join Filter: (b2t1.c1 = b2t2.c1)
1792 -> Tid Scan on t1 b2t1
1793 TID Cond: (ctid = '(1,1)'::tid)
1794 -> Seq Scan on t2 b2t2
1795 Filter: (ctid = '(1,1)'::tid)
1796 -> Tid Scan on t3 b2t3
1797 TID Cond: (ctid = '(1,1)'::tid)
1798 -> Tid Scan on t4 b2t4
1799 TID Cond: (ctid = '(1,1)'::tid)
1800 InitPlan 3 (returns $2)
1803 Join Filter: (b3t1.c1 = b3t4.c1)
1805 Join Filter: (b3t1.c1 = b3t3.c1)
1807 Join Filter: (b3t1.c1 = b3t2.c1)
1808 -> Tid Scan on t1 b3t1
1809 TID Cond: (ctid = '(1,1)'::tid)
1810 -> Seq Scan on t2 b3t2
1811 Filter: (ctid = '(1,1)'::tid)
1812 -> Tid Scan on t3 b3t3
1813 TID Cond: (ctid = '(1,1)'::tid)
1814 -> Tid Scan on t4 b3t4
1815 TID Cond: (ctid = '(1,1)'::tid)
1817 Join Filter: (bmt1.c1 = bmt4.c1)
1819 Join Filter: (bmt1.c1 = bmt3.c1)
1821 Join Filter: (bmt1.c1 = bmt2.c1)
1822 -> Tid Scan on t1 bmt1
1823 TID Cond: (ctid = '(1,1)'::tid)
1824 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1825 -> Seq Scan on t2 bmt2
1826 Filter: (ctid = '(1,1)'::tid)
1827 -> Tid Scan on t3 bmt3
1828 TID Cond: (ctid = '(1,1)'::tid)
1829 -> Tid Scan on t4 bmt4
1830 TID Cond: (ctid = '(1,1)'::tid)
1834 Leading(bmt1 bmt2 bmt3 bmt4)
1835 Leading(b1t2 b1t3 b1t4 b1t1)
1836 Leading(b2t3 b2t4 b2t1 b2t2)
1837 Leading(b3t4 b3t1 b3t2 b3t3)
1839 EXPLAIN (COSTS false)
1840 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)'
1842 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)'
1844 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)'
1846 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)'
1851 Leading(bmt1 bmt2 bmt3 bmt4)
1852 Leading(b1t2 b1t3 b1t4 b1t1)
1853 Leading(b2t3 b2t4 b2t1 b2t2)
1854 Leading(b3t4 b3t1 b3t2 b3t3)
1860 ------------------------------------------------------------------------------
1862 InitPlan 1 (returns $0)
1865 Join Filter: (b1t2.c1 = b1t1.c1)
1867 Join Filter: (b1t2.c1 = b1t4.c1)
1869 Join Filter: (b1t2.c1 = b1t3.c1)
1870 -> Seq Scan on t2 b1t2
1871 Filter: (ctid = '(1,1)'::tid)
1872 -> Tid Scan on t3 b1t3
1873 TID Cond: (ctid = '(1,1)'::tid)
1874 -> Tid Scan on t4 b1t4
1875 TID Cond: (ctid = '(1,1)'::tid)
1876 -> Tid Scan on t1 b1t1
1877 TID Cond: (ctid = '(1,1)'::tid)
1878 InitPlan 2 (returns $1)
1881 Join Filter: (b2t1.c1 = b2t2.c1)
1883 Join Filter: (b2t3.c1 = b2t1.c1)
1885 Join Filter: (b2t3.c1 = b2t4.c1)
1886 -> Tid Scan on t3 b2t3
1887 TID Cond: (ctid = '(1,1)'::tid)
1888 -> Tid Scan on t4 b2t4
1889 TID Cond: (ctid = '(1,1)'::tid)
1890 -> Tid Scan on t1 b2t1
1891 TID Cond: (ctid = '(1,1)'::tid)
1892 -> Seq Scan on t2 b2t2
1893 Filter: (ctid = '(1,1)'::tid)
1894 InitPlan 3 (returns $2)
1897 Join Filter: (b3t1.c1 = b3t3.c1)
1899 Join Filter: (b3t1.c1 = b3t2.c1)
1901 Join Filter: (b3t1.c1 = b3t4.c1)
1902 -> Tid Scan on t1 b3t1
1903 TID Cond: (ctid = '(1,1)'::tid)
1904 -> Tid Scan on t4 b3t4
1905 TID Cond: (ctid = '(1,1)'::tid)
1906 -> Seq Scan on t2 b3t2
1907 Filter: (ctid = '(1,1)'::tid)
1908 -> Tid Scan on t3 b3t3
1909 TID Cond: (ctid = '(1,1)'::tid)
1911 Join Filter: (bmt1.c1 = bmt4.c1)
1913 Join Filter: (bmt1.c1 = bmt3.c1)
1915 Join Filter: (bmt1.c1 = bmt2.c1)
1916 -> Tid Scan on t1 bmt1
1917 TID Cond: (ctid = '(1,1)'::tid)
1918 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1919 -> Seq Scan on t2 bmt2
1920 Filter: (ctid = '(1,1)'::tid)
1921 -> Tid Scan on t3 bmt3
1922 TID Cond: (ctid = '(1,1)'::tid)
1923 -> Tid Scan on t4 bmt4
1924 TID Cond: (ctid = '(1,1)'::tid)
1928 EXPLAIN (COSTS false)
1930 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)'
1933 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)'
1935 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1937 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)'
1942 -----------------------------------------------------------------------------
1945 Join Filter: (bmt1.c1 = (max(b2t1.c1)))
1947 Join Filter: (bmt1.c1 = (max(b1t1.c1)))
1949 Join Filter: (bmt1.c1 = bmt4.c1)
1951 Join Filter: (bmt1.c1 = bmt3.c1)
1953 Join Filter: (bmt1.c1 = bmt2.c1)
1954 -> Tid Scan on t1 bmt1
1955 TID Cond: (ctid = '(1,1)'::tid)
1956 -> Seq Scan on t2 bmt2
1957 Filter: (ctid = '(1,1)'::tid)
1958 -> Tid Scan on t3 bmt3
1959 TID Cond: (ctid = '(1,1)'::tid)
1960 -> Tid Scan on t4 bmt4
1961 TID Cond: (ctid = '(1,1)'::tid)
1964 Join Filter: (b1t1.c1 = b1t4.c1)
1966 Join Filter: (b1t1.c1 = b1t3.c1)
1968 Join Filter: (b1t1.c1 = b1t2.c1)
1969 -> Tid Scan on t1 b1t1
1970 TID Cond: (ctid = '(1,1)'::tid)
1971 -> Seq Scan on t2 b1t2
1972 Filter: (ctid = '(1,1)'::tid)
1973 -> Tid Scan on t3 b1t3
1974 TID Cond: (ctid = '(1,1)'::tid)
1975 -> Tid Scan on t4 b1t4
1976 TID Cond: (ctid = '(1,1)'::tid)
1979 Join Filter: (b2t1.c1 = b2t4.c1)
1981 Join Filter: (b2t1.c1 = b2t3.c1)
1983 Join Filter: (b2t1.c1 = b2t2.c1)
1984 -> Tid Scan on t1 b2t1
1985 TID Cond: (ctid = '(1,1)'::tid)
1986 -> Seq Scan on t2 b2t2
1987 Filter: (ctid = '(1,1)'::tid)
1988 -> Tid Scan on t3 b2t3
1989 TID Cond: (ctid = '(1,1)'::tid)
1990 -> Tid Scan on t4 b2t4
1991 TID Cond: (ctid = '(1,1)'::tid)
1995 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1996 Leading(b1t2 b1t3 b1t4 b1t1)
1997 Leading(b2t3 b2t4 b2t1 b2t2)
1999 EXPLAIN (COSTS false)
2001 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)'
2004 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)'
2006 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2008 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)'
2014 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2015 Leading(b1t2 b1t3 b1t4 b1t1)
2016 Leading(b2t3 b2t4 b2t1 b2t2)
2022 -----------------------------------------------------------------------------------------------------
2025 Join Filter: (bmt1.c1 = bmt4.c1)
2027 Join Filter: (bmt1.c1 = bmt3.c1)
2029 Join Filter: (bmt1.c1 = bmt2.c1)
2031 Join Filter: ((max(b1t1.c1)) = bmt1.c1)
2033 Merge Cond: ((max(b1t1.c1)) = (max(b2t1.c1)))
2035 Sort Key: (max(b1t1.c1))
2038 Join Filter: (b1t2.c1 = b1t1.c1)
2040 Join Filter: (b1t2.c1 = b1t4.c1)
2042 Join Filter: (b1t2.c1 = b1t3.c1)
2043 -> Seq Scan on t2 b1t2
2044 Filter: (ctid = '(1,1)'::tid)
2045 -> Tid Scan on t3 b1t3
2046 TID Cond: (ctid = '(1,1)'::tid)
2047 -> Tid Scan on t4 b1t4
2048 TID Cond: (ctid = '(1,1)'::tid)
2049 -> Tid Scan on t1 b1t1
2050 TID Cond: (ctid = '(1,1)'::tid)
2052 Sort Key: (max(b2t1.c1))
2055 Join Filter: (b2t1.c1 = b2t2.c1)
2057 Join Filter: (b2t3.c1 = b2t1.c1)
2059 Join Filter: (b2t3.c1 = b2t4.c1)
2060 -> Tid Scan on t3 b2t3
2061 TID Cond: (ctid = '(1,1)'::tid)
2062 -> Tid Scan on t4 b2t4
2063 TID Cond: (ctid = '(1,1)'::tid)
2064 -> Tid Scan on t1 b2t1
2065 TID Cond: (ctid = '(1,1)'::tid)
2066 -> Seq Scan on t2 b2t2
2067 Filter: (ctid = '(1,1)'::tid)
2068 -> Tid Scan on t1 bmt1
2069 TID Cond: (ctid = '(1,1)'::tid)
2070 -> Seq Scan on t2 bmt2
2071 Filter: (ctid = '(1,1)'::tid)
2072 -> Tid Scan on t3 bmt3
2073 TID Cond: (ctid = '(1,1)'::tid)
2074 -> Tid Scan on t4 bmt4
2075 TID Cond: (ctid = '(1,1)'::tid)
2079 EXPLAIN (COSTS false)
2081 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)'
2084 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)'
2087 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)'
2089 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2091 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)'
2097 -----------------------------------------------------------------------------------------------------------
2100 Join Filter: (bmt1.c1 = (max(b3t1.c1)))
2102 Join Filter: (bmt1.c1 = bmt4.c1)
2104 Join Filter: (bmt1.c1 = bmt3.c1)
2106 Join Filter: (bmt1.c1 = bmt2.c1)
2108 Join Filter: ((max(b1t1.c1)) = bmt1.c1)
2110 Merge Cond: ((max(b1t1.c1)) = (max(b2t1.c1)))
2112 Sort Key: (max(b1t1.c1))
2115 Join Filter: (b1t1.c1 = b1t4.c1)
2117 Join Filter: (b1t1.c1 = b1t3.c1)
2119 Join Filter: (b1t1.c1 = b1t2.c1)
2120 -> Tid Scan on t1 b1t1
2121 TID Cond: (ctid = '(1,1)'::tid)
2122 -> Seq Scan on t2 b1t2
2123 Filter: (ctid = '(1,1)'::tid)
2124 -> Tid Scan on t3 b1t3
2125 TID Cond: (ctid = '(1,1)'::tid)
2126 -> Tid Scan on t4 b1t4
2127 TID Cond: (ctid = '(1,1)'::tid)
2129 Sort Key: (max(b2t1.c1))
2132 Join Filter: (b2t1.c1 = b2t4.c1)
2134 Join Filter: (b2t1.c1 = b2t3.c1)
2136 Join Filter: (b2t1.c1 = b2t2.c1)
2137 -> Tid Scan on t1 b2t1
2138 TID Cond: (ctid = '(1,1)'::tid)
2139 -> Seq Scan on t2 b2t2
2140 Filter: (ctid = '(1,1)'::tid)
2141 -> Tid Scan on t3 b2t3
2142 TID Cond: (ctid = '(1,1)'::tid)
2143 -> Tid Scan on t4 b2t4
2144 TID Cond: (ctid = '(1,1)'::tid)
2145 -> Tid Scan on t1 bmt1
2146 TID Cond: (ctid = '(1,1)'::tid)
2147 -> Seq Scan on t2 bmt2
2148 Filter: (ctid = '(1,1)'::tid)
2149 -> Tid Scan on t3 bmt3
2150 TID Cond: (ctid = '(1,1)'::tid)
2151 -> Tid Scan on t4 bmt4
2152 TID Cond: (ctid = '(1,1)'::tid)
2155 Join Filter: (b3t1.c1 = b3t4.c1)
2157 Join Filter: (b3t1.c1 = b3t3.c1)
2159 Join Filter: (b3t1.c1 = b3t2.c1)
2160 -> Tid Scan on t1 b3t1
2161 TID Cond: (ctid = '(1,1)'::tid)
2162 -> Seq Scan on t2 b3t2
2163 Filter: (ctid = '(1,1)'::tid)
2164 -> Tid Scan on t3 b3t3
2165 TID Cond: (ctid = '(1,1)'::tid)
2166 -> Tid Scan on t4 b3t4
2167 TID Cond: (ctid = '(1,1)'::tid)
2171 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2172 Leading(b1t2 b1t3 b1t4 b1t1)
2173 Leading(b2t3 b2t4 b2t1 b2t2)
2174 Leading(b3t4 b3t1 b3t2 b3t3)
2176 EXPLAIN (COSTS false)
2178 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)'
2181 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)'
2184 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)'
2186 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2188 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)'
2195 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2196 Leading(b1t2 b1t3 b1t4 b1t1)
2197 Leading(b2t3 b2t4 b2t1 b2t2)
2198 Leading(b3t4 b3t1 b3t2 b3t3)
2204 -----------------------------------------------------------------------------------------------------------
2207 Join Filter: (bmt1.c1 = bmt4.c1)
2209 Join Filter: (bmt1.c1 = bmt3.c1)
2211 Join Filter: (bmt1.c1 = bmt2.c1)
2213 Join Filter: ((max(b1t1.c1)) = bmt1.c1)
2215 Join Filter: ((max(b2t1.c1)) = (max(b1t1.c1)))
2217 Merge Cond: ((max(b2t1.c1)) = (max(b3t1.c1)))
2219 Sort Key: (max(b2t1.c1))
2222 Join Filter: (b2t1.c1 = b2t2.c1)
2224 Join Filter: (b2t3.c1 = b2t1.c1)
2226 Join Filter: (b2t3.c1 = b2t4.c1)
2227 -> Tid Scan on t3 b2t3
2228 TID Cond: (ctid = '(1,1)'::tid)
2229 -> Tid Scan on t4 b2t4
2230 TID Cond: (ctid = '(1,1)'::tid)
2231 -> Tid Scan on t1 b2t1
2232 TID Cond: (ctid = '(1,1)'::tid)
2233 -> Seq Scan on t2 b2t2
2234 Filter: (ctid = '(1,1)'::tid)
2236 Sort Key: (max(b3t1.c1))
2239 Join Filter: (b3t1.c1 = b3t3.c1)
2241 Join Filter: (b3t1.c1 = b3t2.c1)
2243 Join Filter: (b3t1.c1 = b3t4.c1)
2244 -> Tid Scan on t1 b3t1
2245 TID Cond: (ctid = '(1,1)'::tid)
2246 -> Tid Scan on t4 b3t4
2247 TID Cond: (ctid = '(1,1)'::tid)
2248 -> Seq Scan on t2 b3t2
2249 Filter: (ctid = '(1,1)'::tid)
2250 -> Tid Scan on t3 b3t3
2251 TID Cond: (ctid = '(1,1)'::tid)
2254 Join Filter: (b1t2.c1 = b1t1.c1)
2256 Join Filter: (b1t2.c1 = b1t4.c1)
2258 Join Filter: (b1t2.c1 = b1t3.c1)
2259 -> Seq Scan on t2 b1t2
2260 Filter: (ctid = '(1,1)'::tid)
2261 -> Tid Scan on t3 b1t3
2262 TID Cond: (ctid = '(1,1)'::tid)
2263 -> Tid Scan on t4 b1t4
2264 TID Cond: (ctid = '(1,1)'::tid)
2265 -> Tid Scan on t1 b1t1
2266 TID Cond: (ctid = '(1,1)'::tid)
2267 -> Tid Scan on t1 bmt1
2268 TID Cond: (ctid = '(1,1)'::tid)
2269 -> Seq Scan on t2 bmt2
2270 Filter: (ctid = '(1,1)'::tid)
2271 -> Tid Scan on t3 bmt3
2272 TID Cond: (ctid = '(1,1)'::tid)
2273 -> Tid Scan on t4 bmt4
2274 TID Cond: (ctid = '(1,1)'::tid)
2278 ---- No. L-2-2 the number of the tables per quiry block
2281 EXPLAIN (COSTS false)
2283 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2285 SELECT max(bmt1.c1), (
2286 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2288 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2290 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2294 -----------------------------------------------------------------
2296 InitPlan 2 (returns $1)
2298 InitPlan 1 (returns $0)
2300 -> Tid Scan on t1 b2t1
2301 TID Cond: (ctid = '(1,1)'::tid)
2302 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2303 InitPlan 4 (returns $3)
2305 InitPlan 3 (returns $2)
2307 -> Tid Scan on t1 b3t1
2308 TID Cond: (ctid = '(1,1)'::tid)
2309 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2311 -> Tid Scan on t1 bmt1
2312 TID Cond: (ctid = '(1,1)'::tid)
2313 Filter: ((c1 <> $3) AND (c1 = 1))
2320 EXPLAIN (COSTS false)
2322 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2324 SELECT max(bmt1.c1), (
2325 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2327 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2329 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2340 -----------------------------------------------------------------
2342 InitPlan 2 (returns $1)
2344 InitPlan 1 (returns $0)
2346 -> Tid Scan on t1 b2t1
2347 TID Cond: (ctid = '(1,1)'::tid)
2348 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2349 InitPlan 4 (returns $3)
2351 InitPlan 3 (returns $2)
2353 -> Tid Scan on t1 b3t1
2354 TID Cond: (ctid = '(1,1)'::tid)
2355 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2357 -> Tid Scan on t1 bmt1
2358 TID Cond: (ctid = '(1,1)'::tid)
2359 Filter: ((c1 <> $3) AND (c1 = 1))
2364 EXPLAIN (COSTS false)
2366 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)'
2368 SELECT max(bmt1.c1), (
2369 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)'
2371 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2374 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)'
2378 -----------------------------------------------------------
2380 InitPlan 1 (returns $0)
2383 Join Filter: (b2t1.c1 = b2t2.c1)
2384 -> Tid Scan on t1 b2t1
2385 TID Cond: (ctid = '(1,1)'::tid)
2386 -> Seq Scan on t2 b2t2
2387 Filter: (ctid = '(1,1)'::tid)
2388 InitPlan 2 (returns $1)
2391 Join Filter: (b3t1.c1 = b3t2.c1)
2392 -> Tid Scan on t1 b3t1
2393 TID Cond: (ctid = '(1,1)'::tid)
2394 -> Seq Scan on t2 b3t2
2395 Filter: (ctid = '(1,1)'::tid)
2397 Join Filter: (bmt1.c1 = (max(b1t1.c1)))
2399 Join Filter: (bmt1.c1 = bmt2.c1)
2400 -> Tid Scan on t1 bmt1
2401 TID Cond: (ctid = '(1,1)'::tid)
2403 -> Seq Scan on t2 bmt2
2404 Filter: (ctid = '(1,1)'::tid)
2407 Join Filter: (b1t1.c1 = b1t2.c1)
2408 -> Tid Scan on t1 b1t1
2409 TID Cond: (ctid = '(1,1)'::tid)
2410 -> Seq Scan on t2 b1t2
2411 Filter: (ctid = '(1,1)'::tid)
2415 Leading(c1 bmt2 bmt1)
2420 EXPLAIN (COSTS false)
2422 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)'
2424 SELECT max(bmt1.c1), (
2425 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)'
2427 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2430 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)'
2435 Leading(c1 bmt2 bmt1)
2444 -----------------------------------------------------------------
2446 InitPlan 1 (returns $0)
2449 Join Filter: (b2t1.c1 = b2t2.c1)
2450 -> Tid Scan on t1 b2t1
2451 TID Cond: (ctid = '(1,1)'::tid)
2452 -> Seq Scan on t2 b2t2
2453 Filter: (ctid = '(1,1)'::tid)
2454 InitPlan 2 (returns $1)
2457 Join Filter: (b3t1.c1 = b3t2.c1)
2458 -> Tid Scan on t1 b3t1
2459 TID Cond: (ctid = '(1,1)'::tid)
2460 -> Seq Scan on t2 b3t2
2461 Filter: (ctid = '(1,1)'::tid)
2463 Join Filter: (bmt2.c1 = bmt1.c1)
2465 Join Filter: (bmt2.c1 = (max(b1t1.c1)))
2466 -> Seq Scan on t2 bmt2
2467 Filter: (ctid = '(1,1)'::tid)
2470 Join Filter: (b1t1.c1 = b1t2.c1)
2471 -> Tid Scan on t1 b1t1
2472 TID Cond: (ctid = '(1,1)'::tid)
2473 -> Seq Scan on t2 b1t2
2474 Filter: (ctid = '(1,1)'::tid)
2475 -> Tid Scan on t1 bmt1
2476 TID Cond: (ctid = '(1,1)'::tid)
2481 EXPLAIN (COSTS false)
2483 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)'
2485 SELECT max(bmt1.c1), (
2486 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)'
2488 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
2490 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)'
2494 -----------------------------------------------------------------------
2496 InitPlan 1 (returns $0)
2499 Join Filter: (b2t1.c1 = b2t4.c1)
2501 Join Filter: (b2t1.c1 = b2t3.c1)
2503 Join Filter: (b2t1.c1 = b2t2.c1)
2504 -> Tid Scan on t1 b2t1
2505 TID Cond: (ctid = '(1,1)'::tid)
2506 -> Seq Scan on t2 b2t2
2507 Filter: (ctid = '(1,1)'::tid)
2508 -> Tid Scan on t3 b2t3
2509 TID Cond: (ctid = '(1,1)'::tid)
2510 -> Tid Scan on t4 b2t4
2511 TID Cond: (ctid = '(1,1)'::tid)
2512 InitPlan 2 (returns $1)
2515 Join Filter: (b3t1.c1 = b3t4.c1)
2517 Join Filter: (b3t1.c1 = b3t3.c1)
2519 Join Filter: (b3t1.c1 = b3t2.c1)
2520 -> Tid Scan on t1 b3t1
2521 TID Cond: (ctid = '(1,1)'::tid)
2522 -> Seq Scan on t2 b3t2
2523 Filter: (ctid = '(1,1)'::tid)
2524 -> Tid Scan on t3 b3t3
2525 TID Cond: (ctid = '(1,1)'::tid)
2526 -> Tid Scan on t4 b3t4
2527 TID Cond: (ctid = '(1,1)'::tid)
2529 Join Filter: (bmt1.c1 = (max(b1t1.c1)))
2531 Join Filter: (bmt1.c1 = bmt4.c1)
2533 Join Filter: (bmt1.c1 = bmt3.c1)
2535 Join Filter: (bmt1.c1 = bmt2.c1)
2536 -> Tid Scan on t1 bmt1
2537 TID Cond: (ctid = '(1,1)'::tid)
2539 -> Seq Scan on t2 bmt2
2540 Filter: (ctid = '(1,1)'::tid)
2541 -> Tid Scan on t3 bmt3
2542 TID Cond: (ctid = '(1,1)'::tid)
2543 -> Tid Scan on t4 bmt4
2544 TID Cond: (ctid = '(1,1)'::tid)
2547 Join Filter: (b1t1.c1 = b1t4.c1)
2549 Join Filter: (b1t1.c1 = b1t3.c1)
2551 Join Filter: (b1t1.c1 = b1t2.c1)
2552 -> Tid Scan on t1 b1t1
2553 TID Cond: (ctid = '(1,1)'::tid)
2554 -> Seq Scan on t2 b1t2
2555 Filter: (ctid = '(1,1)'::tid)
2556 -> Tid Scan on t3 b1t3
2557 TID Cond: (ctid = '(1,1)'::tid)
2558 -> Tid Scan on t4 b1t4
2559 TID Cond: (ctid = '(1,1)'::tid)
2563 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2564 Leading(b1t4 b1t3 b1t2 b1t1)
2565 Leading(b2t4 b2t3 b2t2 b2t1)
2566 Leading(b3t4 b3t3 b3t2 b3t1)
2568 EXPLAIN (COSTS false)
2570 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)'
2572 SELECT max(bmt1.c1), (
2573 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)'
2575 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
2577 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)'
2582 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2583 Leading(b1t4 b1t3 b1t2 b1t1)
2584 Leading(b2t4 b2t3 b2t2 b2t1)
2585 Leading(b3t4 b3t3 b3t2 b3t1)
2591 -----------------------------------------------------------------------------------------
2593 InitPlan 1 (returns $0)
2596 Join Filter: (b2t2.c1 = b2t1.c1)
2598 Join Filter: (b2t3.c1 = b2t2.c1)
2600 Join Filter: (b2t3.c1 = b2t4.c1)
2601 -> Tid Scan on t3 b2t3
2602 TID Cond: (ctid = '(1,1)'::tid)
2603 -> Tid Scan on t4 b2t4
2604 TID Cond: (ctid = '(1,1)'::tid)
2605 -> Seq Scan on t2 b2t2
2606 Filter: (ctid = '(1,1)'::tid)
2607 -> Tid Scan on t1 b2t1
2608 TID Cond: (ctid = '(1,1)'::tid)
2609 InitPlan 2 (returns $1)
2612 Join Filter: (b3t2.c1 = b3t1.c1)
2614 Join Filter: (b3t3.c1 = b3t2.c1)
2616 Join Filter: (b3t3.c1 = b3t4.c1)
2617 -> Tid Scan on t3 b3t3
2618 TID Cond: (ctid = '(1,1)'::tid)
2619 -> Tid Scan on t4 b3t4
2620 TID Cond: (ctid = '(1,1)'::tid)
2621 -> Seq Scan on t2 b3t2
2622 Filter: (ctid = '(1,1)'::tid)
2623 -> Tid Scan on t1 b3t1
2624 TID Cond: (ctid = '(1,1)'::tid)
2626 Join Filter: (bmt2.c1 = bmt1.c1)
2628 Join Filter: (bmt3.c1 = bmt2.c1)
2630 Join Filter: (bmt4.c1 = bmt3.c1)
2632 Join Filter: (bmt4.c1 = (max(b1t1.c1)))
2633 -> Tid Scan on t4 bmt4
2634 TID Cond: (ctid = '(1,1)'::tid)
2637 Join Filter: (b1t2.c1 = b1t1.c1)
2639 Join Filter: (b1t3.c1 = b1t2.c1)
2641 Join Filter: (b1t3.c1 = b1t4.c1)
2642 -> Tid Scan on t3 b1t3
2643 TID Cond: (ctid = '(1,1)'::tid)
2644 -> Tid Scan on t4 b1t4
2645 TID Cond: (ctid = '(1,1)'::tid)
2646 -> Seq Scan on t2 b1t2
2647 Filter: (ctid = '(1,1)'::tid)
2648 -> Tid Scan on t1 b1t1
2649 TID Cond: (ctid = '(1,1)'::tid)
2650 -> Tid Scan on t3 bmt3
2651 TID Cond: (ctid = '(1,1)'::tid)
2652 -> Seq Scan on t2 bmt2
2653 Filter: (ctid = '(1,1)'::tid)
2654 -> Tid Scan on t1 bmt1
2655 TID Cond: (ctid = '(1,1)'::tid)
2660 EXPLAIN (COSTS false)
2662 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)'
2664 SELECT max(bmt1.c1), (
2665 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2667 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
2669 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2673 -----------------------------------------------------------------------
2675 InitPlan 2 (returns $1)
2677 InitPlan 1 (returns $0)
2679 -> Tid Scan on t1 b2t1
2680 TID Cond: (ctid = '(1,1)'::tid)
2681 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2682 InitPlan 3 (returns $3)
2684 -> Tid Scan on t1 b3t1
2685 TID Cond: (ctid = '(1,1)'::tid)
2687 Join Filter: (bmt1.c1 = (max(b1t1.c1)))
2689 Join Filter: (bmt1.c1 = bmt4.c1)
2691 Join Filter: (bmt1.c1 = bmt3.c1)
2693 Join Filter: (bmt1.c1 = bmt2.c1)
2694 -> Tid Scan on t1 bmt1
2695 TID Cond: (ctid = '(1,1)'::tid)
2697 -> Seq Scan on t2 bmt2
2698 Filter: (ctid = '(1,1)'::tid)
2699 -> Tid Scan on t3 bmt3
2700 TID Cond: (ctid = '(1,1)'::tid)
2701 -> Tid Scan on t4 bmt4
2702 TID Cond: (ctid = '(1,1)'::tid)
2705 Join Filter: (b1t1.c1 = b1t4.c1)
2707 Join Filter: (b1t1.c1 = b1t3.c1)
2709 Join Filter: (b1t1.c1 = b1t2.c1)
2710 -> Tid Scan on t1 b1t1
2711 TID Cond: (ctid = '(1,1)'::tid)
2712 -> Seq Scan on t2 b1t2
2713 Filter: (ctid = '(1,1)'::tid)
2714 -> Tid Scan on t3 b1t3
2715 TID Cond: (ctid = '(1,1)'::tid)
2716 -> Tid Scan on t4 b1t4
2717 TID Cond: (ctid = '(1,1)'::tid)
2721 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2722 Leading(b1t4 b1t3 b1t2 b1t1)
2724 EXPLAIN (COSTS false)
2726 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)'
2728 SELECT max(bmt1.c1), (
2729 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2731 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
2733 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2738 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2739 Leading(b1t4 b1t3 b1t2 b1t1)
2745 -----------------------------------------------------------------------------------------
2747 InitPlan 2 (returns $1)
2749 InitPlan 1 (returns $0)
2751 -> Tid Scan on t1 b2t1
2752 TID Cond: (ctid = '(1,1)'::tid)
2753 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2754 InitPlan 3 (returns $3)
2756 -> Tid Scan on t1 b3t1
2757 TID Cond: (ctid = '(1,1)'::tid)
2759 Join Filter: (bmt2.c1 = bmt1.c1)
2761 Join Filter: (bmt3.c1 = bmt2.c1)
2763 Join Filter: (bmt4.c1 = bmt3.c1)
2765 Join Filter: (bmt4.c1 = (max(b1t1.c1)))
2766 -> Tid Scan on t4 bmt4
2767 TID Cond: (ctid = '(1,1)'::tid)
2770 Join Filter: (b1t2.c1 = b1t1.c1)
2772 Join Filter: (b1t3.c1 = b1t2.c1)
2774 Join Filter: (b1t3.c1 = b1t4.c1)
2775 -> Tid Scan on t3 b1t3
2776 TID Cond: (ctid = '(1,1)'::tid)
2777 -> Tid Scan on t4 b1t4
2778 TID Cond: (ctid = '(1,1)'::tid)
2779 -> Seq Scan on t2 b1t2
2780 Filter: (ctid = '(1,1)'::tid)
2781 -> Tid Scan on t1 b1t1
2782 TID Cond: (ctid = '(1,1)'::tid)
2783 -> Tid Scan on t3 bmt3
2784 TID Cond: (ctid = '(1,1)'::tid)
2785 -> Seq Scan on t2 bmt2
2786 Filter: (ctid = '(1,1)'::tid)
2787 -> Tid Scan on t1 bmt1
2788 TID Cond: (ctid = '(1,1)'::tid)
2793 ---- No. L-2-3 RULE or VIEW
2796 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2798 -----------------------------------------------------------------
2801 Join Filter: (t1.c1 = t4.c1)
2803 Join Filter: (t1.c1 = t3.c1)
2805 Join Filter: (t1.c1 = t2.c1)
2808 TID Cond: (ctid = '(1,1)'::tid)
2811 TID Cond: (ctid = '(1,1)'::tid)
2813 Filter: (ctid = '(1,1)'::tid)
2815 TID Cond: (ctid = '(1,1)'::tid)
2817 TID Cond: (ctid = '(1,1)'::tid)
2820 /*+ Leading(t4 t3 t2 t1 r1) */
2821 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2824 Leading(t4 t3 t2 t1 r1)
2830 -----------------------------------------------------------------
2834 Join Filter: (t2.c1 = t1.c1)
2836 Join Filter: (t3.c1 = t2.c1)
2838 Join Filter: (t3.c1 = t4.c1)
2840 TID Cond: (ctid = '(1,1)'::tid)
2842 TID Cond: (ctid = '(1,1)'::tid)
2844 Filter: (ctid = '(1,1)'::tid)
2846 TID Cond: (ctid = '(1,1)'::tid)
2848 TID Cond: (ctid = '(1,1)'::tid)
2852 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2854 -----------------------------------------------------------------
2857 Join Filter: (b1t1.c1 = b1t4.c1)
2859 Join Filter: (b1t1.c1 = b1t3.c1)
2861 Join Filter: (b1t1.c1 = b1t2.c1)
2864 TID Cond: (ctid = '(1,1)'::tid)
2866 -> Tid Scan on t1 b1t1
2867 TID Cond: (ctid = '(1,1)'::tid)
2868 -> Seq Scan on t2 b1t2
2869 Filter: (ctid = '(1,1)'::tid)
2870 -> Tid Scan on t3 b1t3
2871 TID Cond: (ctid = '(1,1)'::tid)
2872 -> Tid Scan on t4 b1t4
2873 TID Cond: (ctid = '(1,1)'::tid)
2876 /*+ Leading(b1t1 b1t2 b1t3 b1t4 r1_) */
2877 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2880 Leading(b1t1 b1t2 b1t3 b1t4 r1_)
2886 -----------------------------------------------------------------
2890 Join Filter: (b1t1.c1 = b1t4.c1)
2892 Join Filter: (b1t1.c1 = b1t3.c1)
2894 Join Filter: (b1t1.c1 = b1t2.c1)
2895 -> Tid Scan on t1 b1t1
2896 TID Cond: (ctid = '(1,1)'::tid)
2897 -> Seq Scan on t2 b1t2
2898 Filter: (ctid = '(1,1)'::tid)
2899 -> Tid Scan on t3 b1t3
2900 TID Cond: (ctid = '(1,1)'::tid)
2901 -> Tid Scan on t4 b1t4
2902 TID Cond: (ctid = '(1,1)'::tid)
2904 TID Cond: (ctid = '(1,1)'::tid)
2909 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2911 -----------------------------------------------------------------
2914 Join Filter: (t1.c1 = t4.c1)
2916 Join Filter: (t1.c1 = t3.c1)
2918 Join Filter: (t1.c1 = t2.c1)
2921 TID Cond: (ctid = '(1,1)'::tid)
2924 TID Cond: (ctid = '(1,1)'::tid)
2926 Filter: (ctid = '(1,1)'::tid)
2928 TID Cond: (ctid = '(1,1)'::tid)
2930 TID Cond: (ctid = '(1,1)'::tid)
2934 Join Filter: (t1.c1 = t4.c1)
2936 Join Filter: (t1.c1 = t3.c1)
2938 Join Filter: (t1.c1 = t2.c1)
2941 TID Cond: (ctid = '(1,1)'::tid)
2944 TID Cond: (ctid = '(1,1)'::tid)
2946 Filter: (ctid = '(1,1)'::tid)
2948 TID Cond: (ctid = '(1,1)'::tid)
2950 TID Cond: (ctid = '(1,1)'::tid)
2953 /*+ Leading(t4 t3 t2 t1 r2) */
2954 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2957 Leading(t4 t3 t2 t1 r2)
2964 Leading(t4 t3 t2 t1 r2)
2970 -----------------------------------------------------------------
2974 Join Filter: (t2.c1 = t1.c1)
2976 Join Filter: (t3.c1 = t2.c1)
2978 Join Filter: (t3.c1 = t4.c1)
2980 TID Cond: (ctid = '(1,1)'::tid)
2982 TID Cond: (ctid = '(1,1)'::tid)
2984 Filter: (ctid = '(1,1)'::tid)
2986 TID Cond: (ctid = '(1,1)'::tid)
2988 TID Cond: (ctid = '(1,1)'::tid)
2994 Join Filter: (t2.c1 = t1.c1)
2996 Join Filter: (t3.c1 = t2.c1)
2998 Join Filter: (t3.c1 = t4.c1)
3000 TID Cond: (ctid = '(1,1)'::tid)
3002 TID Cond: (ctid = '(1,1)'::tid)
3004 Filter: (ctid = '(1,1)'::tid)
3006 TID Cond: (ctid = '(1,1)'::tid)
3008 TID Cond: (ctid = '(1,1)'::tid)
3012 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3014 -----------------------------------------------------------------
3017 Join Filter: (b1t1.c1 = b1t4.c1)
3019 Join Filter: (b1t1.c1 = b1t3.c1)
3021 Join Filter: (b1t1.c1 = b1t2.c1)
3024 TID Cond: (ctid = '(1,1)'::tid)
3026 -> Tid Scan on t1 b1t1
3027 TID Cond: (ctid = '(1,1)'::tid)
3028 -> Seq Scan on t2 b1t2
3029 Filter: (ctid = '(1,1)'::tid)
3030 -> Tid Scan on t3 b1t3
3031 TID Cond: (ctid = '(1,1)'::tid)
3032 -> Tid Scan on t4 b1t4
3033 TID Cond: (ctid = '(1,1)'::tid)
3037 Join Filter: (b2t1.c1 = b2t4.c1)
3039 Join Filter: (b2t1.c1 = b2t3.c1)
3041 Join Filter: (b2t1.c1 = b2t2.c1)
3044 TID Cond: (ctid = '(1,1)'::tid)
3046 -> Tid Scan on t1 b2t1
3047 TID Cond: (ctid = '(1,1)'::tid)
3048 -> Seq Scan on t2 b2t2
3049 Filter: (ctid = '(1,1)'::tid)
3050 -> Tid Scan on t3 b2t3
3051 TID Cond: (ctid = '(1,1)'::tid)
3052 -> Tid Scan on t4 b2t4
3053 TID Cond: (ctid = '(1,1)'::tid)
3057 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3058 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3060 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3063 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3065 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3071 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3073 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3078 -----------------------------------------------------------------
3082 Join Filter: (b1t1.c1 = b1t4.c1)
3084 Join Filter: (b1t1.c1 = b1t3.c1)
3086 Join Filter: (b1t1.c1 = b1t2.c1)
3087 -> Tid Scan on t1 b1t1
3088 TID Cond: (ctid = '(1,1)'::tid)
3089 -> Seq Scan on t2 b1t2
3090 Filter: (ctid = '(1,1)'::tid)
3091 -> Tid Scan on t3 b1t3
3092 TID Cond: (ctid = '(1,1)'::tid)
3093 -> Tid Scan on t4 b1t4
3094 TID Cond: (ctid = '(1,1)'::tid)
3096 TID Cond: (ctid = '(1,1)'::tid)
3102 Join Filter: (b2t1.c1 = b2t4.c1)
3104 Join Filter: (b2t1.c1 = b2t3.c1)
3106 Join Filter: (b2t1.c1 = b2t2.c1)
3107 -> Tid Scan on t1 b2t1
3108 TID Cond: (ctid = '(1,1)'::tid)
3109 -> Seq Scan on t2 b2t2
3110 Filter: (ctid = '(1,1)'::tid)
3111 -> Tid Scan on t3 b2t3
3112 TID Cond: (ctid = '(1,1)'::tid)
3113 -> Tid Scan on t4 b2t4
3114 TID Cond: (ctid = '(1,1)'::tid)
3116 TID Cond: (ctid = '(1,1)'::tid)
3121 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3123 -----------------------------------------------------------------
3126 Join Filter: (t1.c1 = t4.c1)
3128 Join Filter: (t1.c1 = t3.c1)
3130 Join Filter: (t1.c1 = t2.c1)
3133 TID Cond: (ctid = '(1,1)'::tid)
3136 TID Cond: (ctid = '(1,1)'::tid)
3138 Filter: (ctid = '(1,1)'::tid)
3140 TID Cond: (ctid = '(1,1)'::tid)
3142 TID Cond: (ctid = '(1,1)'::tid)
3146 Join Filter: (t1.c1 = t4.c1)
3148 Join Filter: (t1.c1 = t3.c1)
3150 Join Filter: (t1.c1 = t2.c1)
3153 TID Cond: (ctid = '(1,1)'::tid)
3156 TID Cond: (ctid = '(1,1)'::tid)
3158 Filter: (ctid = '(1,1)'::tid)
3160 TID Cond: (ctid = '(1,1)'::tid)
3162 TID Cond: (ctid = '(1,1)'::tid)
3166 Join Filter: (t1.c1 = t4.c1)
3168 Join Filter: (t1.c1 = t3.c1)
3170 Join Filter: (t1.c1 = t2.c1)
3173 TID Cond: (ctid = '(1,1)'::tid)
3176 TID Cond: (ctid = '(1,1)'::tid)
3178 Filter: (ctid = '(1,1)'::tid)
3180 TID Cond: (ctid = '(1,1)'::tid)
3182 TID Cond: (ctid = '(1,1)'::tid)
3185 /*+ Leading(t4 t3 t2 t1 r3) */
3186 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3189 Leading(t4 t3 t2 t1 r3)
3196 Leading(t4 t3 t2 t1 r3)
3203 Leading(t4 t3 t2 t1 r3)
3209 -----------------------------------------------------------------
3213 Join Filter: (t2.c1 = t1.c1)
3215 Join Filter: (t3.c1 = t2.c1)
3217 Join Filter: (t3.c1 = t4.c1)
3219 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)
3233 Join Filter: (t2.c1 = t1.c1)
3235 Join Filter: (t3.c1 = t2.c1)
3237 Join Filter: (t3.c1 = t4.c1)
3239 TID Cond: (ctid = '(1,1)'::tid)
3241 TID Cond: (ctid = '(1,1)'::tid)
3243 Filter: (ctid = '(1,1)'::tid)
3245 TID Cond: (ctid = '(1,1)'::tid)
3247 TID Cond: (ctid = '(1,1)'::tid)
3253 Join Filter: (t2.c1 = t1.c1)
3255 Join Filter: (t3.c1 = t2.c1)
3257 Join Filter: (t3.c1 = t4.c1)
3259 TID Cond: (ctid = '(1,1)'::tid)
3261 TID Cond: (ctid = '(1,1)'::tid)
3263 Filter: (ctid = '(1,1)'::tid)
3265 TID Cond: (ctid = '(1,1)'::tid)
3267 TID Cond: (ctid = '(1,1)'::tid)
3271 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3273 -----------------------------------------------------------------
3276 Join Filter: (b1t1.c1 = b1t4.c1)
3278 Join Filter: (b1t1.c1 = b1t3.c1)
3280 Join Filter: (b1t1.c1 = b1t2.c1)
3283 TID Cond: (ctid = '(1,1)'::tid)
3285 -> Tid Scan on t1 b1t1
3286 TID Cond: (ctid = '(1,1)'::tid)
3287 -> Seq Scan on t2 b1t2
3288 Filter: (ctid = '(1,1)'::tid)
3289 -> Tid Scan on t3 b1t3
3290 TID Cond: (ctid = '(1,1)'::tid)
3291 -> Tid Scan on t4 b1t4
3292 TID Cond: (ctid = '(1,1)'::tid)
3296 Join Filter: (b2t1.c1 = b2t4.c1)
3298 Join Filter: (b2t1.c1 = b2t3.c1)
3300 Join Filter: (b2t1.c1 = b2t2.c1)
3303 TID Cond: (ctid = '(1,1)'::tid)
3305 -> Tid Scan on t1 b2t1
3306 TID Cond: (ctid = '(1,1)'::tid)
3307 -> Seq Scan on t2 b2t2
3308 Filter: (ctid = '(1,1)'::tid)
3309 -> Tid Scan on t3 b2t3
3310 TID Cond: (ctid = '(1,1)'::tid)
3311 -> Tid Scan on t4 b2t4
3312 TID Cond: (ctid = '(1,1)'::tid)
3316 Join Filter: (b3t1.c1 = b3t4.c1)
3318 Join Filter: (b3t1.c1 = b3t3.c1)
3320 Join Filter: (b3t1.c1 = b3t2.c1)
3323 TID Cond: (ctid = '(1,1)'::tid)
3325 -> Tid Scan on t1 b3t1
3326 TID Cond: (ctid = '(1,1)'::tid)
3327 -> Seq Scan on t2 b3t2
3328 Filter: (ctid = '(1,1)'::tid)
3329 -> Tid Scan on t3 b3t3
3330 TID Cond: (ctid = '(1,1)'::tid)
3331 -> Tid Scan on t4 b3t4
3332 TID Cond: (ctid = '(1,1)'::tid)
3336 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3337 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3338 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3340 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3343 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3345 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3346 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3352 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3354 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3355 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3361 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3363 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3364 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3369 -----------------------------------------------------------------
3373 Join Filter: (b1t1.c1 = b1t4.c1)
3375 Join Filter: (b1t1.c1 = b1t3.c1)
3377 Join Filter: (b1t1.c1 = b1t2.c1)
3378 -> Tid Scan on t1 b1t1
3379 TID Cond: (ctid = '(1,1)'::tid)
3380 -> Seq Scan on t2 b1t2
3381 Filter: (ctid = '(1,1)'::tid)
3382 -> Tid Scan on t3 b1t3
3383 TID Cond: (ctid = '(1,1)'::tid)
3384 -> Tid Scan on t4 b1t4
3385 TID Cond: (ctid = '(1,1)'::tid)
3387 TID Cond: (ctid = '(1,1)'::tid)
3393 Join Filter: (b2t1.c1 = b2t4.c1)
3395 Join Filter: (b2t1.c1 = b2t3.c1)
3397 Join Filter: (b2t1.c1 = b2t2.c1)
3398 -> Tid Scan on t1 b2t1
3399 TID Cond: (ctid = '(1,1)'::tid)
3400 -> Seq Scan on t2 b2t2
3401 Filter: (ctid = '(1,1)'::tid)
3402 -> Tid Scan on t3 b2t3
3403 TID Cond: (ctid = '(1,1)'::tid)
3404 -> Tid Scan on t4 b2t4
3405 TID Cond: (ctid = '(1,1)'::tid)
3407 TID Cond: (ctid = '(1,1)'::tid)
3413 Join Filter: (b3t1.c1 = b3t4.c1)
3415 Join Filter: (b3t1.c1 = b3t3.c1)
3417 Join Filter: (b3t1.c1 = b3t2.c1)
3418 -> Tid Scan on t1 b3t1
3419 TID Cond: (ctid = '(1,1)'::tid)
3420 -> Seq Scan on t2 b3t2
3421 Filter: (ctid = '(1,1)'::tid)
3422 -> Tid Scan on t3 b3t3
3423 TID Cond: (ctid = '(1,1)'::tid)
3424 -> Tid Scan on t4 b3t4
3425 TID Cond: (ctid = '(1,1)'::tid)
3427 TID Cond: (ctid = '(1,1)'::tid)
3432 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3434 ------------------------------------
3436 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3437 -> Seq Scan on t1 v1t1
3439 -> Seq Scan on t1 v1t1_1
3442 /*+Leading(v1t1 v1t1)*/
3443 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3444 INFO: pg_hint_plan: hint syntax error at or near "Leading(v1t1 v1t1)"
3445 DETAIL: Relation name "v1t1" is ambiguous.
3454 ------------------------------------
3456 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3457 -> Seq Scan on t1 v1t1
3459 -> Seq Scan on t1 v1t1_1
3463 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3465 -----------------------------------
3467 Hash Cond: (v1t1.c1 = v1t1_.c1)
3468 -> Seq Scan on t1 v1t1
3470 -> Seq Scan on t1 v1t1_
3473 /*+Leading(v1t1 v1t1_)*/
3474 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3483 -----------------------------------
3485 Hash Cond: (v1t1.c1 = v1t1_.c1)
3486 -> Seq Scan on t1 v1t1
3488 -> Seq Scan on t1 v1t1_
3492 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3494 ------------------------------------
3496 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3497 -> Seq Scan on t1 r4t1
3499 -> Seq Scan on t1 r4t1_1
3502 /*+Leading(r4t1 r4t1)*/
3503 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3504 INFO: pg_hint_plan: hint syntax error at or near "Leading(r4t1 r4t1)"
3505 DETAIL: Relation name "r4t1" is ambiguous.
3514 ------------------------------------
3516 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3517 -> Seq Scan on t1 r4t1
3519 -> Seq Scan on t1 r4t1_1
3523 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3525 ----------------------------------
3527 Hash Cond: (r4t1.c1 = r5t1.c1)
3528 -> Seq Scan on t1 r4t1
3530 -> Seq Scan on t1 r5t1
3533 /*+Leading(r4t1 r5t1)*/
3534 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3543 ----------------------------------
3545 Hash Cond: (r4t1.c1 = r5t1.c1)
3546 -> Seq Scan on t1 r4t1
3548 -> Seq Scan on t1 r5t1
3552 ---- No. L-2-4 VALUES clause
3555 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3557 -------------------------------------------------
3560 Hash Cond: (t2.c1 = "*VALUES*".column1)
3563 -> Values Scan on "*VALUES*"
3564 -> Index Scan using t1_i1 on t1
3565 Index Cond: (c1 = t2.c1)
3568 /*+ Leading(t3 t1 t2) */
3569 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3578 -------------------------------------------------
3581 Hash Cond: (t2.c1 = "*VALUES*".column1)
3584 -> Values Scan on "*VALUES*"
3585 -> Index Scan using t1_i1 on t1
3586 Index Cond: (c1 = t2.c1)
3589 /*+ Leading(*VALUES* t1 t2) */
3590 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3593 Leading(*VALUES* t1 t2)
3599 -----------------------------------------------------
3602 -> Values Scan on "*VALUES*"
3603 -> Index Scan using t1_i1 on t1
3604 Index Cond: (c1 = "*VALUES*".column1)
3605 -> Index Scan using t2_i1 on t2
3606 Index Cond: (c1 = t1.c1)
3610 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3612 -------------------------------------------------------
3615 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3617 Hash Cond: (t2.c1 = "*VALUES*".column1)
3620 -> Values Scan on "*VALUES*"
3622 -> Values Scan on "*VALUES*_1"
3623 -> Index Scan using t1_i1 on t1
3624 Index Cond: (c1 = t2.c1)
3627 /*+ Leading(t4 t3 t2 t1) */
3628 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3632 Leading(t4 t3 t2 t1)
3637 -------------------------------------------------------
3640 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3642 Hash Cond: (t2.c1 = "*VALUES*".column1)
3645 -> Values Scan on "*VALUES*"
3647 -> Values Scan on "*VALUES*_1"
3648 -> Index Scan using t1_i1 on t1
3649 Index Cond: (c1 = t2.c1)
3652 /*+ Leading(*VALUES* t3 t2 t1) */
3653 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3654 INFO: pg_hint_plan: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) "
3655 DETAIL: Relation name "*VALUES*" is ambiguous.
3661 Leading(*VALUES* t3 t2 t1)
3664 -------------------------------------------------------
3667 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3669 Hash Cond: (t2.c1 = "*VALUES*".column1)
3672 -> Values Scan on "*VALUES*"
3674 -> Values Scan on "*VALUES*_1"
3675 -> Index Scan using t1_i1 on t1
3676 Index Cond: (c1 = t2.c1)
3680 ---- No. L-3-1 leading the order of table joins
3682 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3684 ------------------------------------------
3686 Merge Cond: (t1.c1 = t2.c1)
3688 Merge Cond: (t1.c1 = t3.c1)
3689 -> Index Scan using t1_i1 on t1
3690 -> Index Scan using t3_i1 on t3
3697 /*+Leading(t3 t1 t2)*/
3698 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3707 ------------------------------------------
3709 Merge Cond: (t1.c1 = t2.c1)
3711 Merge Cond: (t1.c1 = t3.c1)
3712 -> Index Scan using t1_i1 on t1
3713 -> Index Scan using t3_i1 on t3
3720 /*+Leading(t1 t2 t3)*/
3721 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3730 ------------------------------------------
3733 Merge Cond: (t1.c1 = t2.c1)
3734 -> Index Scan using t1_i1 on t1
3738 -> Index Scan using t3_i1 on t3
3739 Index Cond: (c1 = t1.c1)
3743 ---- No. L-3-2 GUC parameter to disable hints
3745 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3747 ------------------------------------------
3749 Merge Cond: (t1.c1 = t2.c1)
3751 Merge Cond: (t1.c1 = t3.c1)
3752 -> Index Scan using t1_i1 on t1
3753 -> Index Scan using t3_i1 on t3
3760 Set geqo_threshold = 3;
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 ------------------------------------------
3774 Merge Cond: (t1.c1 = t2.c1)
3776 Merge Cond: (t1.c1 = t3.c1)
3777 -> Index Scan using t1_i1 on t1
3778 -> Index Scan using t3_i1 on t3
3784 Reset geqo_threshold;
3786 Set geqo_threshold = 4;
3788 /*+Leading(t1 t2 t3)*/
3789 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3798 ------------------------------------------
3801 Merge Cond: (t1.c1 = t2.c1)
3802 -> Index Scan using t1_i1 on t1
3806 -> Index Scan using t3_i1 on t3
3807 Index Cond: (c1 = t1.c1)
3810 Reset geqo_threshold;
3812 Set from_collapse_limit = 2;
3813 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3815 -----------------------------------------------------
3817 Hash Cond: (t1.c1 = v2t1.c1)
3821 Merge Cond: (v2t1.c1 = v2t2.c1)
3822 -> Index Scan using t1_i1 on t1 v2t1
3825 -> Seq Scan on t2 v2t2
3828 /*+Leading(t1 v2t1 v2t2)*/
3829 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3832 Leading(t1 v2t1 v2t2)
3838 -----------------------------------------------------
3840 Hash Cond: (t1.c1 = v2t1.c1)
3844 Merge Cond: (v2t1.c1 = v2t2.c1)
3845 -> Index Scan using t1_i1 on t1 v2t1
3848 -> Seq Scan on t2 v2t2
3851 Reset from_collapse_limit;
3853 Set from_collapse_limit = 3;
3854 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3856 -----------------------------------------------
3858 Merge Cond: (v2t1.c1 = v2t2.c1)
3860 Merge Cond: (t1.c1 = v2t1.c1)
3861 -> Index Scan using t1_i1 on t1
3862 -> Index Scan using t1_i1 on t1 v2t1
3865 -> Seq Scan on t2 v2t2
3868 /*+Leading(v2t1 v2t2 t1)*/
3869 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3872 Leading(v2t1 v2t2 t1)
3878 -----------------------------------------------------
3880 Hash Cond: (t1.c1 = v2t1.c1)
3884 Merge Cond: (v2t1.c1 = v2t2.c1)
3885 -> Index Scan using t1_i1 on t1 v2t1
3888 -> Seq Scan on t2 v2t2
3891 Reset from_collapse_limit;
3893 Set join_collapse_limit = 2;
3894 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3895 JOIN s1.t2 ON (t3.c1 = t2.c1)
3896 JOIN s1.t1 ON (t1.c1 = t3.c1);
3898 ------------------------------------------
3900 Hash Cond: (t1.c1 = t3.c1)
3904 Hash Cond: (t3.c1 = t2.c1)
3910 /*+Leading(t1 t2 t3)*/
3911 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3912 JOIN s1.t2 ON (t3.c1 = t2.c1)
3913 JOIN s1.t1 ON (t1.c1 = t3.c1);
3922 ------------------------------------------
3924 Hash Cond: (t1.c1 = t3.c1)
3928 Hash Cond: (t3.c1 = t2.c1)
3934 Reset join_collapse_limit;
3936 Set join_collapse_limit = 3;
3937 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3938 JOIN s1.t2 ON (t3.c1 = t2.c1)
3939 JOIN s1.t1 ON (t1.c1 = t3.c1);
3941 ------------------------------------------
3943 Join Filter: (t2.c1 = t3.c1)
3945 Merge Cond: (t1.c1 = t2.c1)
3946 -> Index Scan using t1_i1 on t1
3950 -> Index Scan using t3_i1 on t3
3951 Index Cond: (c1 = t1.c1)
3954 /*+Leading(t1 t2 t3)*/
3955 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3956 JOIN s1.t2 ON (t3.c1 = t2.c1)
3957 JOIN s1.t1 ON (t1.c1 = t3.c1);
3966 ------------------------------------------
3968 Join Filter: (t2.c1 = t3.c1)
3970 Merge Cond: (t1.c1 = t2.c1)
3971 -> Index Scan using t1_i1 on t1
3975 -> Index Scan using t3_i1 on t3
3976 Index Cond: (c1 = t1.c1)
3979 Reset join_collapse_limit;
3981 ---- No. L-3-3 join between parents or between children
3984 /*+Leading(t1 t2 t3)*/
3985 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
3986 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
3987 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
3996 -------------------------------------------------
3998 Hash Cond: (t1.c1 = t3.c1)
4000 Hash Cond: (t1.c1 = t2.c1)
4002 -> Seq Scan on p2c1 t1_1
4003 -> Seq Scan on p2c1c1 t1_2
4004 -> Seq Scan on p2c1c2 t1_3
4007 -> Seq Scan on p2c2 t2_1
4008 -> Seq Scan on p2c2c1 t2_2
4009 -> Seq Scan on p2c2c2 t2_3
4012 -> Seq Scan on p2c3 t3_1
4013 -> Seq Scan on p2c3c1 t3_2
4014 -> Seq Scan on p2c3c2 t3_3
4018 /*+Leading(p2c1c1 p2c2c1 p2c3c1)*/
4019 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4020 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4021 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4025 Leading(p2c1c1 p2c2c1 p2c3c1)
4030 -------------------------------------------------
4032 Hash Cond: (t1.c1 = t3.c1)
4034 Hash Cond: (t1.c1 = t2.c1)
4036 -> Seq Scan on p2c1 t1_1
4037 -> Seq Scan on p2c1c1 t1_2
4038 -> Seq Scan on p2c1c2 t1_3
4041 -> Seq Scan on p2c2 t2_1
4042 -> Seq Scan on p2c2c1 t2_2
4043 -> Seq Scan on p2c2c2 t2_3
4046 -> Seq Scan on p2c3 t3_1
4047 -> Seq Scan on p2c3c1 t3_2
4048 -> Seq Scan on p2c3c2 t3_3
4052 ---- No. L-3-4 conflict leading hint
4055 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4056 JOIN s1.t2 ON (t1.c1 = t2.c1)
4057 JOIN s1.t3 ON (t1.c1 = t3.c1);
4059 ------------------------------------------
4061 Merge Cond: (t1.c1 = t2.c1)
4063 Merge Cond: (t1.c1 = t3.c1)
4064 -> Index Scan using t1_i1 on t1
4065 -> Index Scan using t3_i1 on t3
4071 /*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4072 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4073 JOIN s1.t2 ON (t1.c1 = t2.c1)
4074 JOIN s1.t3 ON (t1.c1 = t3.c1);
4075 INFO: pg_hint_plan: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4076 DETAIL: Conflict leading hint.
4086 ------------------------------------------
4089 Merge Cond: (t1.c1 = t2.c1)
4090 -> Index Scan using t1_i1 on t1
4094 -> Index Scan using t3_i1 on t3
4095 Index Cond: (c1 = t1.c1)
4099 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4100 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4101 JOIN s1.t2 ON (t1.c1 = t2.c1)
4102 JOIN s1.t3 ON (t1.c1 = t3.c1);
4103 INFO: pg_hint_plan: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
4104 DETAIL: Conflict leading hint.
4105 INFO: pg_hint_plan: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4106 DETAIL: Conflict leading hint.
4117 ------------------------------------------
4120 Merge Cond: (t1.c1 = t2.c1)
4121 -> Index Scan using t1_i1 on t1
4125 -> Index Scan using t3_i1 on t3
4126 Index Cond: (c1 = t1.c1)
4130 /*+Leading(t2 t3 t1)Leading()*/
4131 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4132 JOIN s1.t2 ON (t1.c1 = t2.c1)
4133 JOIN s1.t3 ON (t1.c1 = t3.c1);
4134 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4135 DETAIL: Leading hint requires at least two relations.
4145 ------------------------------------------
4147 Merge Cond: (t1.c1 = t2.c1)
4148 -> Index Scan using t1_i1 on t1
4152 Hash Cond: (t3.c1 = t2.c1)
4159 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
4160 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4161 JOIN s1.t2 ON (t1.c1 = t2.c1)
4162 JOIN s1.t3 ON (t1.c1 = t3.c1);
4163 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4164 DETAIL: Leading hint requires at least two relations.
4165 INFO: pg_hint_plan: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
4166 DETAIL: Conflict leading hint.
4177 ------------------------------------------
4179 Merge Cond: (t1.c1 = t2.c1)
4180 -> Index Scan using t1_i1 on t1
4184 Hash Cond: (t3.c1 = t2.c1)
4191 ---- No. L-3-5 hint state output
4195 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4196 JOIN s1.t2 ON (t1.c1 = t2.c1)
4197 JOIN s1.t3 ON (t1.c1 = t3.c1);
4198 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4199 DETAIL: Leading hint requires at least two relations.
4208 ------------------------------------------
4210 Merge Cond: (t1.c1 = t2.c1)
4212 Merge Cond: (t1.c1 = t3.c1)
4213 -> Index Scan using t1_i1 on t1
4214 -> Index Scan using t3_i1 on t3
4222 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4223 JOIN s1.t2 ON (t1.c1 = t2.c1)
4224 JOIN s1.t3 ON (t1.c1 = t3.c1);
4225 INFO: pg_hint_plan: hint syntax error at or near "Leading(t1)"
4226 DETAIL: Leading hint requires at least two relations.
4235 ------------------------------------------
4237 Merge Cond: (t1.c1 = t2.c1)
4239 Merge Cond: (t1.c1 = t3.c1)
4240 -> Index Scan using t1_i1 on t1
4241 -> Index Scan using t3_i1 on t3
4249 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4250 JOIN s1.t2 ON (t1.c1 = t2.c1)
4251 JOIN s1.t3 ON (t1.c1 = t3.c1);
4260 ------------------------------------------
4263 Merge Cond: (t1.c1 = t2.c1)
4264 -> Index Scan using t1_i1 on t1
4268 -> Index Scan using t3_i1 on t3
4269 Index Cond: (c1 = t1.c1)
4273 /*+Leading(t1 t2 t3)*/
4274 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4275 JOIN s1.t2 ON (t1.c1 = t2.c1)
4276 JOIN s1.t3 ON (t1.c1 = t3.c1);
4285 ------------------------------------------
4288 Merge Cond: (t1.c1 = t2.c1)
4289 -> Index Scan using t1_i1 on t1
4293 -> Index Scan using t3_i1 on t3
4294 Index Cond: (c1 = t1.c1)
4298 ---- No. L-3-6 specified Inner/Outer side
4302 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;
4303 INFO: pg_hint_plan: hint syntax error at or near "Leading((t2))"
4304 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4313 ------------------------------------------------
4316 Merge Cond: (t1.c1 = t2.c1)
4318 Merge Cond: (t1.c1 = t3.c1)
4319 -> Index Scan using t1_i1 on t1
4320 -> Index Scan using t3_i1 on t3
4324 -> Index Scan using t4_i1 on t4
4325 Index Cond: (c1 = t1.c1)
4329 /*+Leading((t2 t3))*/
4330 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;
4339 ------------------------------------------------
4341 Join Filter: (t1.c1 = t4.c1)
4343 Join Filter: (t2.c1 = t1.c1)
4345 -> Index Scan using t2_i1 on t2
4346 -> Index Scan using t3_i1 on t3
4347 Index Cond: (c1 = t2.c1)
4348 -> Index Scan using t1_i1 on t1
4349 Index Cond: (c1 = t3.c1)
4350 -> Index Scan using t4_i1 on t4
4351 Index Cond: (c1 = t3.c1)
4355 /*+Leading((t2 t3 t4))*/
4356 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
4357 INFO: pg_hint_plan: hint syntax error at or near "Leading((t2 t3 t4))"
4358 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4367 ------------------------------------------------
4370 Merge Cond: (t1.c1 = t2.c1)
4372 Merge Cond: (t1.c1 = t3.c1)
4373 -> Index Scan using t1_i1 on t1
4374 -> Index Scan using t3_i1 on t3
4378 -> Index Scan using t4_i1 on t4
4379 Index Cond: (c1 = t1.c1)
4383 /*+Leading(((t1 t2) (t3 t4)))*/
4384 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;
4387 Leading(((t1 t2) (t3 t4)))
4393 ------------------------------------------
4395 Hash Cond: (t1.c1 = t3.c1)
4397 Merge Cond: (t1.c1 = t2.c1)
4398 -> Index Scan using t1_i1 on t1
4404 Hash Cond: (t3.c1 = t4.c1)
4411 /*+Leading((((t1 t3) t4) t2)))*/
4412 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
4413 INFO: pg_hint_plan: hint syntax error at or near ")"
4414 DETAIL: Unrecognized hint keyword ")".
4417 Leading((((t1 t3) t4) t2))
4423 ------------------------------------------------
4425 Merge Cond: (t1.c1 = t2.c1)
4427 Merge Cond: (t1.c1 = t4.c1)
4429 Merge Cond: (t1.c1 = t3.c1)
4430 -> Index Scan using t1_i1 on t1
4431 -> Index Scan using t3_i1 on t3
4432 -> Index Scan using t4_i1 on t4
4439 /*+Leading((t1 (t3 (t4 t2))))*/
4440 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;
4443 Leading((t1 (t3 (t4 t2))))
4449 ------------------------------------------------------
4451 Merge Cond: (t1.c1 = t2.c1)
4452 -> Index Scan using t1_i1 on t1
4456 Hash Cond: (t3.c1 = t2.c1)
4460 Hash Cond: (t4.c1 = t2.c1)