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)
677 -> Seq Scan on p1c1 t1_1
678 -> Seq Scan on p1c2 t1_2
679 -> Seq Scan on p1c3 t1_3
683 -> Seq Scan on p1c1 t2_1
684 -> Seq Scan on p1c2 t2_2
685 -> Seq Scan on p1c3 t2_3
689 -> Seq Scan on p1c1 t3_1
690 -> Seq Scan on p1c2 t3_2
691 -> Seq Scan on p1c3 t3_3
695 -> Seq Scan on p1c1 t4_1
696 -> Seq Scan on p1c2 t4_2
697 -> Seq Scan on p1c3 t4_3
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)
719 -> Seq Scan on p1c1 t3_1
720 -> Seq Scan on p1c2 t3_2
721 -> Seq Scan on p1c3 t3_3
725 -> Seq Scan on p1c1 t4_1
726 -> Seq Scan on p1c2 t4_2
727 -> Seq Scan on p1c3 t4_3
731 -> Seq Scan on p1c1 t2_1
732 -> Seq Scan on p1c2 t2_2
733 -> Seq Scan on p1c3 t2_3
737 -> Seq Scan on p1c1 t1_1
738 -> Seq Scan on p1c2 t1_2
739 -> Seq Scan on p1c3 t1_3
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)
1229 -> Tid Scan on t4 b1t4
1230 TID Cond: (ctid = '(1,1)'::tid)
1232 Join Filter: (b1t1.c1 = b1t3.c1)
1233 -> Tid Scan on t3 b1t3
1234 TID Cond: (ctid = '(1,1)'::tid)
1236 Join Filter: (b1t1.c1 = b1t2.c1)
1237 -> Tid Scan on t1 b1t1
1238 TID Cond: (ctid = '(1,1)'::tid)
1240 -> Seq Scan on t2 b1t2
1241 Filter: (ctid = '(1,1)'::tid)
1242 InitPlan 2 (returns $1)
1245 Join Filter: (b2t1.c1 = b2t4.c1)
1246 -> Tid Scan on t4 b2t4
1247 TID Cond: (ctid = '(1,1)'::tid)
1249 Join Filter: (b2t1.c1 = b2t3.c1)
1250 -> Tid Scan on t3 b2t3
1251 TID Cond: (ctid = '(1,1)'::tid)
1253 Join Filter: (b2t1.c1 = b2t2.c1)
1254 -> Tid Scan on t1 b2t1
1255 TID Cond: (ctid = '(1,1)'::tid)
1257 -> Seq Scan on t2 b2t2
1258 Filter: (ctid = '(1,1)'::tid)
1260 Join Filter: (bmt1.c1 = bmt4.c1)
1261 -> Tid Scan on t4 bmt4
1262 TID Cond: (ctid = '(1,1)'::tid)
1264 Join Filter: (bmt1.c1 = bmt3.c1)
1265 -> Tid Scan on t3 bmt3
1266 TID Cond: (ctid = '(1,1)'::tid)
1268 Join Filter: (bmt1.c1 = bmt2.c1)
1269 -> Tid Scan on t1 bmt1
1270 TID Cond: (ctid = '(1,1)'::tid)
1272 -> Seq Scan on t2 bmt2
1273 Filter: (ctid = '(1,1)'::tid)
1277 Leading(bmt1 bmt2 bmt3 bmt4)
1278 Leading(b1t2 b1t3 b1t4 b1t1)
1279 Leading(b2t3 b2t4 b2t1 b2t2)
1281 EXPLAIN (COSTS false)
1282 SELECT max(bmt1.c1), (
1283 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)'
1285 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)'
1287 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)'
1291 Leading(bmt1 bmt2 bmt3 bmt4)
1292 Leading(b1t2 b1t3 b1t4 b1t1)
1293 Leading(b2t3 b2t4 b2t1 b2t2)
1299 -------------------------------------------------------------------------
1301 InitPlan 1 (returns $0)
1304 Join Filter: (b1t2.c1 = b1t1.c1)
1305 -> Tid Scan on t1 b1t1
1306 TID Cond: (ctid = '(1,1)'::tid)
1308 Join Filter: (b1t2.c1 = b1t4.c1)
1309 -> Tid Scan on t4 b1t4
1310 TID Cond: (ctid = '(1,1)'::tid)
1312 Join Filter: (b1t2.c1 = b1t3.c1)
1313 -> Seq Scan on t2 b1t2
1314 Filter: (ctid = '(1,1)'::tid)
1316 -> Tid Scan on t3 b1t3
1317 TID Cond: (ctid = '(1,1)'::tid)
1318 InitPlan 2 (returns $1)
1321 Join Filter: (b2t1.c1 = b2t2.c1)
1322 -> Seq Scan on t2 b2t2
1323 Filter: (ctid = '(1,1)'::tid)
1325 Join Filter: (b2t3.c1 = b2t1.c1)
1326 -> Tid Scan on t1 b2t1
1327 TID Cond: (ctid = '(1,1)'::tid)
1329 Join Filter: (b2t3.c1 = b2t4.c1)
1330 -> Tid Scan on t3 b2t3
1331 TID Cond: (ctid = '(1,1)'::tid)
1333 -> Tid Scan on t4 b2t4
1334 TID Cond: (ctid = '(1,1)'::tid)
1336 Join Filter: (bmt1.c1 = bmt4.c1)
1337 -> Tid Scan on t4 bmt4
1338 TID Cond: (ctid = '(1,1)'::tid)
1340 Join Filter: (bmt1.c1 = bmt3.c1)
1341 -> Tid Scan on t3 bmt3
1342 TID Cond: (ctid = '(1,1)'::tid)
1344 Join Filter: (bmt1.c1 = bmt2.c1)
1345 -> Tid Scan on t1 bmt1
1346 TID Cond: (ctid = '(1,1)'::tid)
1348 -> Seq Scan on t2 bmt2
1349 Filter: (ctid = '(1,1)'::tid)
1353 EXPLAIN (COSTS false)
1354 SELECT max(bmt1.c1), (
1355 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)'
1357 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)'
1359 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)'
1361 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)'
1364 -----------------------------------------------------------------------
1366 InitPlan 1 (returns $0)
1369 Join Filter: (b1t1.c1 = b1t4.c1)
1370 -> Tid Scan on t4 b1t4
1371 TID Cond: (ctid = '(1,1)'::tid)
1373 Join Filter: (b1t1.c1 = b1t3.c1)
1374 -> Tid Scan on t3 b1t3
1375 TID Cond: (ctid = '(1,1)'::tid)
1377 Join Filter: (b1t1.c1 = b1t2.c1)
1378 -> Tid Scan on t1 b1t1
1379 TID Cond: (ctid = '(1,1)'::tid)
1381 -> Seq Scan on t2 b1t2
1382 Filter: (ctid = '(1,1)'::tid)
1383 InitPlan 2 (returns $1)
1386 Join Filter: (b2t1.c1 = b2t4.c1)
1387 -> Tid Scan on t4 b2t4
1388 TID Cond: (ctid = '(1,1)'::tid)
1390 Join Filter: (b2t1.c1 = b2t3.c1)
1391 -> Tid Scan on t3 b2t3
1392 TID Cond: (ctid = '(1,1)'::tid)
1394 Join Filter: (b2t1.c1 = b2t2.c1)
1395 -> Tid Scan on t1 b2t1
1396 TID Cond: (ctid = '(1,1)'::tid)
1398 -> Seq Scan on t2 b2t2
1399 Filter: (ctid = '(1,1)'::tid)
1400 InitPlan 3 (returns $2)
1403 Join Filter: (b3t1.c1 = b3t4.c1)
1404 -> Tid Scan on t4 b3t4
1405 TID Cond: (ctid = '(1,1)'::tid)
1407 Join Filter: (b3t1.c1 = b3t3.c1)
1408 -> Tid Scan on t3 b3t3
1409 TID Cond: (ctid = '(1,1)'::tid)
1411 Join Filter: (b3t1.c1 = b3t2.c1)
1412 -> Tid Scan on t1 b3t1
1413 TID Cond: (ctid = '(1,1)'::tid)
1415 -> Seq Scan on t2 b3t2
1416 Filter: (ctid = '(1,1)'::tid)
1418 Join Filter: (bmt1.c1 = bmt4.c1)
1419 -> Tid Scan on t4 bmt4
1420 TID Cond: (ctid = '(1,1)'::tid)
1422 Join Filter: (bmt1.c1 = bmt3.c1)
1423 -> Tid Scan on t3 bmt3
1424 TID Cond: (ctid = '(1,1)'::tid)
1426 Join Filter: (bmt1.c1 = bmt2.c1)
1427 -> Tid Scan on t1 bmt1
1428 TID Cond: (ctid = '(1,1)'::tid)
1430 -> Seq Scan on t2 bmt2
1431 Filter: (ctid = '(1,1)'::tid)
1435 Leading(bmt1 bmt2 bmt3 bmt4)
1436 Leading(b1t2 b1t3 b1t4 b1t1)
1437 Leading(b2t3 b2t4 b2t1 b2t2)
1438 Leading(b3t4 b3t1 b3t2 b3t3)
1440 EXPLAIN (COSTS false)
1441 SELECT max(bmt1.c1), (
1442 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)'
1444 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)'
1446 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)'
1448 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)'
1452 Leading(bmt1 bmt2 bmt3 bmt4)
1453 Leading(b1t2 b1t3 b1t4 b1t1)
1454 Leading(b2t3 b2t4 b2t1 b2t2)
1455 Leading(b3t4 b3t1 b3t2 b3t3)
1461 -------------------------------------------------------------------------
1463 InitPlan 1 (returns $0)
1466 Join Filter: (b1t2.c1 = b1t1.c1)
1467 -> Tid Scan on t1 b1t1
1468 TID Cond: (ctid = '(1,1)'::tid)
1470 Join Filter: (b1t2.c1 = b1t4.c1)
1471 -> Tid Scan on t4 b1t4
1472 TID Cond: (ctid = '(1,1)'::tid)
1474 Join Filter: (b1t2.c1 = b1t3.c1)
1475 -> Seq Scan on t2 b1t2
1476 Filter: (ctid = '(1,1)'::tid)
1478 -> Tid Scan on t3 b1t3
1479 TID Cond: (ctid = '(1,1)'::tid)
1480 InitPlan 2 (returns $1)
1483 Join Filter: (b2t1.c1 = b2t2.c1)
1484 -> Seq Scan on t2 b2t2
1485 Filter: (ctid = '(1,1)'::tid)
1487 Join Filter: (b2t3.c1 = b2t1.c1)
1488 -> Tid Scan on t1 b2t1
1489 TID Cond: (ctid = '(1,1)'::tid)
1491 Join Filter: (b2t3.c1 = b2t4.c1)
1492 -> Tid Scan on t3 b2t3
1493 TID Cond: (ctid = '(1,1)'::tid)
1495 -> Tid Scan on t4 b2t4
1496 TID Cond: (ctid = '(1,1)'::tid)
1497 InitPlan 3 (returns $2)
1500 Join Filter: (b3t1.c1 = b3t3.c1)
1501 -> Tid Scan on t3 b3t3
1502 TID Cond: (ctid = '(1,1)'::tid)
1504 Join Filter: (b3t1.c1 = b3t2.c1)
1505 -> Seq Scan on t2 b3t2
1506 Filter: (ctid = '(1,1)'::tid)
1508 Join Filter: (b3t1.c1 = b3t4.c1)
1509 -> Tid Scan on t1 b3t1
1510 TID Cond: (ctid = '(1,1)'::tid)
1512 -> Tid Scan on t4 b3t4
1513 TID Cond: (ctid = '(1,1)'::tid)
1515 Join Filter: (bmt1.c1 = bmt4.c1)
1516 -> Tid Scan on t4 bmt4
1517 TID Cond: (ctid = '(1,1)'::tid)
1519 Join Filter: (bmt1.c1 = bmt3.c1)
1520 -> Tid Scan on t3 bmt3
1521 TID Cond: (ctid = '(1,1)'::tid)
1523 Join Filter: (bmt1.c1 = bmt2.c1)
1524 -> Tid Scan on t1 bmt1
1525 TID Cond: (ctid = '(1,1)'::tid)
1527 -> Seq Scan on t2 bmt2
1528 Filter: (ctid = '(1,1)'::tid)
1532 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1534 ---------------------------------------------------------------
1537 Join Filter: (bmt1.c1 = bmt4.c1)
1538 -> Tid Scan on t4 bmt4
1539 TID Cond: (ctid = '(1,1)'::tid)
1541 Join Filter: (bmt1.c1 = bmt3.c1)
1542 -> Tid Scan on t3 bmt3
1543 TID Cond: (ctid = '(1,1)'::tid)
1545 Join Filter: (bmt1.c1 = bmt2.c1)
1546 -> Tid Scan on t1 bmt1
1547 TID Cond: (ctid = '(1,1)'::tid)
1549 -> Seq Scan on t2 bmt2
1550 Filter: (ctid = '(1,1)'::tid)
1554 Leading(bmt4 bmt3 bmt2 bmt1)
1556 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)';
1559 Leading(bmt4 bmt3 bmt2 bmt1)
1565 -----------------------------------------------------------------
1568 Join Filter: (bmt2.c1 = bmt1.c1)
1569 -> Tid Scan on t1 bmt1
1570 TID Cond: (ctid = '(1,1)'::tid)
1572 Join Filter: (bmt3.c1 = bmt2.c1)
1573 -> Seq Scan on t2 bmt2
1574 Filter: (ctid = '(1,1)'::tid)
1576 Join Filter: (bmt3.c1 = bmt4.c1)
1577 -> Tid Scan on t3 bmt3
1578 TID Cond: (ctid = '(1,1)'::tid)
1580 -> Tid Scan on t4 bmt4
1581 TID Cond: (ctid = '(1,1)'::tid)
1585 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)';
1587 ---------------------------------------------------------------
1590 Join Filter: (bmt1.c1 = bmt4.c1)
1591 -> Tid Scan on t4 bmt4
1592 TID Cond: (ctid = '(1,1)'::tid)
1594 Join Filter: (bmt1.c1 = bmt3.c1)
1595 -> Tid Scan on t3 bmt3
1596 TID Cond: (ctid = '(1,1)'::tid)
1598 Join Filter: (bmt1.c1 = bmt2.c1)
1599 -> Tid Scan on t1 bmt1
1600 TID Cond: (ctid = '(1,1)'::tid)
1602 -> Seq Scan on t2 bmt2
1603 Filter: (ctid = '(1,1)'::tid)
1607 Leading(bmt4 bmt3 bmt2 bmt1)
1609 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)';
1612 Leading(bmt4 bmt3 bmt2 bmt1)
1618 -----------------------------------------------------------------
1621 Join Filter: (bmt2.c1 = bmt1.c1)
1622 -> Tid Scan on t1 bmt1
1623 TID Cond: (ctid = '(1,1)'::tid)
1625 Join Filter: (bmt3.c1 = bmt2.c1)
1626 -> Seq Scan on t2 bmt2
1627 Filter: (ctid = '(1,1)'::tid)
1629 Join Filter: (bmt3.c1 = bmt4.c1)
1630 -> Tid Scan on t3 bmt3
1631 TID Cond: (ctid = '(1,1)'::tid)
1633 -> Tid Scan on t4 bmt4
1634 TID Cond: (ctid = '(1,1)'::tid)
1638 EXPLAIN (COSTS false)
1639 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)'
1641 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)'
1643 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)'
1647 -----------------------------------------------------------------------
1649 InitPlan 1 (returns $0)
1652 Join Filter: (b1t1.c1 = b1t4.c1)
1653 -> Tid Scan on t4 b1t4
1654 TID Cond: (ctid = '(1,1)'::tid)
1656 Join Filter: (b1t1.c1 = b1t3.c1)
1657 -> Tid Scan on t3 b1t3
1658 TID Cond: (ctid = '(1,1)'::tid)
1660 Join Filter: (b1t1.c1 = b1t2.c1)
1661 -> Tid Scan on t1 b1t1
1662 TID Cond: (ctid = '(1,1)'::tid)
1664 -> Seq Scan on t2 b1t2
1665 Filter: (ctid = '(1,1)'::tid)
1666 InitPlan 2 (returns $1)
1669 Join Filter: (b2t1.c1 = b2t4.c1)
1670 -> Tid Scan on t4 b2t4
1671 TID Cond: (ctid = '(1,1)'::tid)
1673 Join Filter: (b2t1.c1 = b2t3.c1)
1674 -> Tid Scan on t3 b2t3
1675 TID Cond: (ctid = '(1,1)'::tid)
1677 Join Filter: (b2t1.c1 = b2t2.c1)
1678 -> Tid Scan on t1 b2t1
1679 TID Cond: (ctid = '(1,1)'::tid)
1681 -> Seq Scan on t2 b2t2
1682 Filter: (ctid = '(1,1)'::tid)
1684 Join Filter: (bmt1.c1 = bmt4.c1)
1685 -> Tid Scan on t4 bmt4
1686 TID Cond: (ctid = '(1,1)'::tid)
1688 Join Filter: (bmt1.c1 = bmt3.c1)
1689 -> Tid Scan on t3 bmt3
1690 TID Cond: (ctid = '(1,1)'::tid)
1692 Join Filter: (bmt1.c1 = bmt2.c1)
1693 -> Tid Scan on t1 bmt1
1694 TID Cond: (ctid = '(1,1)'::tid)
1695 Filter: ((c1 <> $0) AND (c1 <> $1))
1697 -> Seq Scan on t2 bmt2
1698 Filter: (ctid = '(1,1)'::tid)
1702 Leading(bmt1 bmt2 bmt3 bmt4)
1703 Leading(b1t2 b1t3 b1t4 b1t1)
1704 Leading(b2t3 b2t4 b2t1 b2t2)
1706 EXPLAIN (COSTS false)
1707 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)'
1709 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)'
1711 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)'
1716 Leading(bmt1 bmt2 bmt3 bmt4)
1717 Leading(b1t2 b1t3 b1t4 b1t1)
1718 Leading(b2t3 b2t4 b2t1 b2t2)
1724 -------------------------------------------------------------------------
1726 InitPlan 1 (returns $0)
1729 Join Filter: (b1t2.c1 = b1t1.c1)
1730 -> Tid Scan on t1 b1t1
1731 TID Cond: (ctid = '(1,1)'::tid)
1733 Join Filter: (b1t2.c1 = b1t4.c1)
1734 -> Tid Scan on t4 b1t4
1735 TID Cond: (ctid = '(1,1)'::tid)
1737 Join Filter: (b1t2.c1 = b1t3.c1)
1738 -> Seq Scan on t2 b1t2
1739 Filter: (ctid = '(1,1)'::tid)
1741 -> Tid Scan on t3 b1t3
1742 TID Cond: (ctid = '(1,1)'::tid)
1743 InitPlan 2 (returns $1)
1746 Join Filter: (b2t1.c1 = b2t2.c1)
1747 -> Seq Scan on t2 b2t2
1748 Filter: (ctid = '(1,1)'::tid)
1750 Join Filter: (b2t3.c1 = b2t1.c1)
1751 -> Tid Scan on t1 b2t1
1752 TID Cond: (ctid = '(1,1)'::tid)
1754 Join Filter: (b2t3.c1 = b2t4.c1)
1755 -> Tid Scan on t3 b2t3
1756 TID Cond: (ctid = '(1,1)'::tid)
1758 -> Tid Scan on t4 b2t4
1759 TID Cond: (ctid = '(1,1)'::tid)
1761 Join Filter: (bmt1.c1 = bmt4.c1)
1762 -> Tid Scan on t4 bmt4
1763 TID Cond: (ctid = '(1,1)'::tid)
1765 Join Filter: (bmt1.c1 = bmt3.c1)
1766 -> Tid Scan on t3 bmt3
1767 TID Cond: (ctid = '(1,1)'::tid)
1769 Join Filter: (bmt1.c1 = bmt2.c1)
1770 -> Tid Scan on t1 bmt1
1771 TID Cond: (ctid = '(1,1)'::tid)
1772 Filter: ((c1 <> $0) AND (c1 <> $1))
1774 -> Seq Scan on t2 bmt2
1775 Filter: (ctid = '(1,1)'::tid)
1779 EXPLAIN (COSTS false)
1780 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)'
1782 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)'
1784 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)'
1786 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)'
1790 ------------------------------------------------------------------------------
1792 InitPlan 1 (returns $0)
1795 Join Filter: (b1t1.c1 = b1t4.c1)
1796 -> Tid Scan on t4 b1t4
1797 TID Cond: (ctid = '(1,1)'::tid)
1799 Join Filter: (b1t1.c1 = b1t3.c1)
1800 -> Tid Scan on t3 b1t3
1801 TID Cond: (ctid = '(1,1)'::tid)
1803 Join Filter: (b1t1.c1 = b1t2.c1)
1804 -> Tid Scan on t1 b1t1
1805 TID Cond: (ctid = '(1,1)'::tid)
1807 -> Seq Scan on t2 b1t2
1808 Filter: (ctid = '(1,1)'::tid)
1809 InitPlan 2 (returns $1)
1812 Join Filter: (b2t1.c1 = b2t4.c1)
1813 -> Tid Scan on t4 b2t4
1814 TID Cond: (ctid = '(1,1)'::tid)
1816 Join Filter: (b2t1.c1 = b2t3.c1)
1817 -> Tid Scan on t3 b2t3
1818 TID Cond: (ctid = '(1,1)'::tid)
1820 Join Filter: (b2t1.c1 = b2t2.c1)
1821 -> Tid Scan on t1 b2t1
1822 TID Cond: (ctid = '(1,1)'::tid)
1824 -> Seq Scan on t2 b2t2
1825 Filter: (ctid = '(1,1)'::tid)
1826 InitPlan 3 (returns $2)
1829 Join Filter: (b3t1.c1 = b3t4.c1)
1830 -> Tid Scan on t4 b3t4
1831 TID Cond: (ctid = '(1,1)'::tid)
1833 Join Filter: (b3t1.c1 = b3t3.c1)
1834 -> Tid Scan on t3 b3t3
1835 TID Cond: (ctid = '(1,1)'::tid)
1837 Join Filter: (b3t1.c1 = b3t2.c1)
1838 -> Tid Scan on t1 b3t1
1839 TID Cond: (ctid = '(1,1)'::tid)
1841 -> Seq Scan on t2 b3t2
1842 Filter: (ctid = '(1,1)'::tid)
1844 Join Filter: (bmt1.c1 = bmt4.c1)
1845 -> Tid Scan on t4 bmt4
1846 TID Cond: (ctid = '(1,1)'::tid)
1848 Join Filter: (bmt1.c1 = bmt3.c1)
1849 -> Tid Scan on t3 bmt3
1850 TID Cond: (ctid = '(1,1)'::tid)
1852 Join Filter: (bmt1.c1 = bmt2.c1)
1853 -> Tid Scan on t1 bmt1
1854 TID Cond: (ctid = '(1,1)'::tid)
1855 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1857 -> Seq Scan on t2 bmt2
1858 Filter: (ctid = '(1,1)'::tid)
1862 Leading(bmt1 bmt2 bmt3 bmt4)
1863 Leading(b1t2 b1t3 b1t4 b1t1)
1864 Leading(b2t3 b2t4 b2t1 b2t2)
1865 Leading(b3t4 b3t1 b3t2 b3t3)
1867 EXPLAIN (COSTS false)
1868 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)'
1870 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)'
1872 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)'
1874 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)'
1879 Leading(bmt1 bmt2 bmt3 bmt4)
1880 Leading(b1t2 b1t3 b1t4 b1t1)
1881 Leading(b2t3 b2t4 b2t1 b2t2)
1882 Leading(b3t4 b3t1 b3t2 b3t3)
1888 ------------------------------------------------------------------------------
1890 InitPlan 1 (returns $0)
1893 Join Filter: (b1t2.c1 = b1t1.c1)
1894 -> Tid Scan on t1 b1t1
1895 TID Cond: (ctid = '(1,1)'::tid)
1897 Join Filter: (b1t2.c1 = b1t4.c1)
1898 -> Tid Scan on t4 b1t4
1899 TID Cond: (ctid = '(1,1)'::tid)
1901 Join Filter: (b1t2.c1 = b1t3.c1)
1902 -> Seq Scan on t2 b1t2
1903 Filter: (ctid = '(1,1)'::tid)
1905 -> Tid Scan on t3 b1t3
1906 TID Cond: (ctid = '(1,1)'::tid)
1907 InitPlan 2 (returns $1)
1910 Join Filter: (b2t1.c1 = b2t2.c1)
1911 -> Seq Scan on t2 b2t2
1912 Filter: (ctid = '(1,1)'::tid)
1914 Join Filter: (b2t3.c1 = b2t1.c1)
1915 -> Tid Scan on t1 b2t1
1916 TID Cond: (ctid = '(1,1)'::tid)
1918 Join Filter: (b2t3.c1 = b2t4.c1)
1919 -> Tid Scan on t3 b2t3
1920 TID Cond: (ctid = '(1,1)'::tid)
1922 -> Tid Scan on t4 b2t4
1923 TID Cond: (ctid = '(1,1)'::tid)
1924 InitPlan 3 (returns $2)
1927 Join Filter: (b3t1.c1 = b3t3.c1)
1928 -> Tid Scan on t3 b3t3
1929 TID Cond: (ctid = '(1,1)'::tid)
1931 Join Filter: (b3t1.c1 = b3t2.c1)
1932 -> Seq Scan on t2 b3t2
1933 Filter: (ctid = '(1,1)'::tid)
1935 Join Filter: (b3t1.c1 = b3t4.c1)
1936 -> Tid Scan on t1 b3t1
1937 TID Cond: (ctid = '(1,1)'::tid)
1939 -> Tid Scan on t4 b3t4
1940 TID Cond: (ctid = '(1,1)'::tid)
1942 Join Filter: (bmt1.c1 = bmt4.c1)
1943 -> Tid Scan on t4 bmt4
1944 TID Cond: (ctid = '(1,1)'::tid)
1946 Join Filter: (bmt1.c1 = bmt3.c1)
1947 -> Tid Scan on t3 bmt3
1948 TID Cond: (ctid = '(1,1)'::tid)
1950 Join Filter: (bmt1.c1 = bmt2.c1)
1951 -> Tid Scan on t1 bmt1
1952 TID Cond: (ctid = '(1,1)'::tid)
1953 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1955 -> Seq Scan on t2 bmt2
1956 Filter: (ctid = '(1,1)'::tid)
1960 EXPLAIN (COSTS false)
1962 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)'
1965 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)'
1967 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1969 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)'
1974 -----------------------------------------------------------------------
1979 Join Filter: (b1t1.c1 = b1t4.c1)
1980 -> Tid Scan on t4 b1t4
1981 TID Cond: (ctid = '(1,1)'::tid)
1983 Join Filter: (b1t1.c1 = b1t3.c1)
1984 -> Tid Scan on t3 b1t3
1985 TID Cond: (ctid = '(1,1)'::tid)
1987 Join Filter: (b1t1.c1 = b1t2.c1)
1988 -> Tid Scan on t1 b1t1
1989 TID Cond: (ctid = '(1,1)'::tid)
1991 -> Seq Scan on t2 b1t2
1992 Filter: (ctid = '(1,1)'::tid)
1996 Join Filter: (b2t1.c1 = b2t4.c1)
1997 -> Tid Scan on t4 b2t4
1998 TID Cond: (ctid = '(1,1)'::tid)
2000 Join Filter: (b2t1.c1 = b2t3.c1)
2001 -> Tid Scan on t3 b2t3
2002 TID Cond: (ctid = '(1,1)'::tid)
2004 Join Filter: (b2t1.c1 = b2t2.c1)
2005 -> Tid Scan on t1 b2t1
2006 TID Cond: (ctid = '(1,1)'::tid)
2008 -> Seq Scan on t2 b2t2
2009 Filter: (ctid = '(1,1)'::tid)
2011 Join Filter: (bmt1.c1 = c2.c1)
2013 Join Filter: (bmt1.c1 = bmt4.c1)
2014 -> Tid Scan on t4 bmt4
2015 TID Cond: (ctid = '(1,1)'::tid)
2017 Join Filter: (bmt1.c1 = bmt3.c1)
2018 -> Tid Scan on t3 bmt3
2019 TID Cond: (ctid = '(1,1)'::tid)
2021 Join Filter: (bmt1.c1 = bmt2.c1)
2022 -> Seq Scan on t2 bmt2
2023 Filter: (ctid = '(1,1)'::tid)
2025 Join Filter: (bmt1.c1 = c1.c1)
2026 -> Tid Scan on t1 bmt1
2027 TID Cond: (ctid = '(1,1)'::tid)
2033 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2034 Leading(b1t2 b1t3 b1t4 b1t1)
2035 Leading(b2t3 b2t4 b2t1 b2t2)
2037 EXPLAIN (COSTS false)
2039 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)'
2042 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)'
2044 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2046 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)'
2052 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2053 Leading(b1t2 b1t3 b1t4 b1t1)
2054 Leading(b2t3 b2t4 b2t1 b2t2)
2060 -------------------------------------------------------------------------
2065 Join Filter: (b1t2.c1 = b1t1.c1)
2066 -> Tid Scan on t1 b1t1
2067 TID Cond: (ctid = '(1,1)'::tid)
2069 Join Filter: (b1t2.c1 = b1t4.c1)
2070 -> Tid Scan on t4 b1t4
2071 TID Cond: (ctid = '(1,1)'::tid)
2073 Join Filter: (b1t2.c1 = b1t3.c1)
2074 -> Seq Scan on t2 b1t2
2075 Filter: (ctid = '(1,1)'::tid)
2077 -> Tid Scan on t3 b1t3
2078 TID Cond: (ctid = '(1,1)'::tid)
2082 Join Filter: (b2t1.c1 = b2t2.c1)
2083 -> Seq Scan on t2 b2t2
2084 Filter: (ctid = '(1,1)'::tid)
2086 Join Filter: (b2t3.c1 = b2t1.c1)
2087 -> Tid Scan on t1 b2t1
2088 TID Cond: (ctid = '(1,1)'::tid)
2090 Join Filter: (b2t3.c1 = b2t4.c1)
2091 -> Tid Scan on t3 b2t3
2092 TID Cond: (ctid = '(1,1)'::tid)
2094 -> Tid Scan on t4 b2t4
2095 TID Cond: (ctid = '(1,1)'::tid)
2097 Join Filter: (bmt1.c1 = bmt4.c1)
2098 -> Tid Scan on t4 bmt4
2099 TID Cond: (ctid = '(1,1)'::tid)
2101 Join Filter: (bmt1.c1 = bmt3.c1)
2102 -> Tid Scan on t3 bmt3
2103 TID Cond: (ctid = '(1,1)'::tid)
2105 Join Filter: (bmt1.c1 = bmt2.c1)
2106 -> Seq Scan on t2 bmt2
2107 Filter: (ctid = '(1,1)'::tid)
2109 Join Filter: (c1.c1 = bmt1.c1)
2110 -> Tid Scan on t1 bmt1
2111 TID Cond: (ctid = '(1,1)'::tid)
2113 Join Filter: (c1.c1 = c2.c1)
2119 EXPLAIN (COSTS false)
2121 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)'
2124 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)'
2127 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)'
2129 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2131 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)'
2137 -----------------------------------------------------------------------------
2142 Join Filter: (b1t1.c1 = b1t4.c1)
2143 -> Tid Scan on t4 b1t4
2144 TID Cond: (ctid = '(1,1)'::tid)
2146 Join Filter: (b1t1.c1 = b1t3.c1)
2147 -> Tid Scan on t3 b1t3
2148 TID Cond: (ctid = '(1,1)'::tid)
2150 Join Filter: (b1t1.c1 = b1t2.c1)
2151 -> Tid Scan on t1 b1t1
2152 TID Cond: (ctid = '(1,1)'::tid)
2154 -> Seq Scan on t2 b1t2
2155 Filter: (ctid = '(1,1)'::tid)
2159 Join Filter: (b2t1.c1 = b2t4.c1)
2160 -> Tid Scan on t4 b2t4
2161 TID Cond: (ctid = '(1,1)'::tid)
2163 Join Filter: (b2t1.c1 = b2t3.c1)
2164 -> Tid Scan on t3 b2t3
2165 TID Cond: (ctid = '(1,1)'::tid)
2167 Join Filter: (b2t1.c1 = b2t2.c1)
2168 -> Tid Scan on t1 b2t1
2169 TID Cond: (ctid = '(1,1)'::tid)
2171 -> Seq Scan on t2 b2t2
2172 Filter: (ctid = '(1,1)'::tid)
2176 Join Filter: (b3t1.c1 = b3t4.c1)
2177 -> Tid Scan on t4 b3t4
2178 TID Cond: (ctid = '(1,1)'::tid)
2180 Join Filter: (b3t1.c1 = b3t3.c1)
2181 -> Tid Scan on t3 b3t3
2182 TID Cond: (ctid = '(1,1)'::tid)
2184 Join Filter: (b3t1.c1 = b3t2.c1)
2185 -> Tid Scan on t1 b3t1
2186 TID Cond: (ctid = '(1,1)'::tid)
2188 -> Seq Scan on t2 b3t2
2189 Filter: (ctid = '(1,1)'::tid)
2191 Join Filter: (bmt1.c1 = c3.c1)
2193 Join Filter: (bmt1.c1 = c2.c1)
2195 Join Filter: (bmt1.c1 = bmt4.c1)
2196 -> Tid Scan on t4 bmt4
2197 TID Cond: (ctid = '(1,1)'::tid)
2199 Join Filter: (bmt1.c1 = bmt3.c1)
2200 -> Tid Scan on t3 bmt3
2201 TID Cond: (ctid = '(1,1)'::tid)
2203 Join Filter: (bmt1.c1 = bmt2.c1)
2204 -> Seq Scan on t2 bmt2
2205 Filter: (ctid = '(1,1)'::tid)
2207 Join Filter: (bmt1.c1 = c1.c1)
2208 -> Tid Scan on t1 bmt1
2209 TID Cond: (ctid = '(1,1)'::tid)
2216 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2217 Leading(b1t2 b1t3 b1t4 b1t1)
2218 Leading(b2t3 b2t4 b2t1 b2t2)
2219 Leading(b3t4 b3t1 b3t2 b3t3)
2221 EXPLAIN (COSTS false)
2223 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)'
2226 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)'
2229 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)'
2231 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2233 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)'
2240 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2241 Leading(b1t2 b1t3 b1t4 b1t1)
2242 Leading(b2t3 b2t4 b2t1 b2t2)
2243 Leading(b3t4 b3t1 b3t2 b3t3)
2249 -------------------------------------------------------------------------
2254 Join Filter: (b1t2.c1 = b1t1.c1)
2255 -> Tid Scan on t1 b1t1
2256 TID Cond: (ctid = '(1,1)'::tid)
2258 Join Filter: (b1t2.c1 = b1t4.c1)
2259 -> Tid Scan on t4 b1t4
2260 TID Cond: (ctid = '(1,1)'::tid)
2262 Join Filter: (b1t2.c1 = b1t3.c1)
2263 -> Seq Scan on t2 b1t2
2264 Filter: (ctid = '(1,1)'::tid)
2266 -> Tid Scan on t3 b1t3
2267 TID Cond: (ctid = '(1,1)'::tid)
2271 Join Filter: (b2t1.c1 = b2t2.c1)
2272 -> Seq Scan on t2 b2t2
2273 Filter: (ctid = '(1,1)'::tid)
2275 Join Filter: (b2t3.c1 = b2t1.c1)
2276 -> Tid Scan on t1 b2t1
2277 TID Cond: (ctid = '(1,1)'::tid)
2279 Join Filter: (b2t3.c1 = b2t4.c1)
2280 -> Tid Scan on t3 b2t3
2281 TID Cond: (ctid = '(1,1)'::tid)
2283 -> Tid Scan on t4 b2t4
2284 TID Cond: (ctid = '(1,1)'::tid)
2288 Join Filter: (b3t1.c1 = b3t3.c1)
2289 -> Tid Scan on t3 b3t3
2290 TID Cond: (ctid = '(1,1)'::tid)
2292 Join Filter: (b3t1.c1 = b3t2.c1)
2293 -> Seq Scan on t2 b3t2
2294 Filter: (ctid = '(1,1)'::tid)
2296 Join Filter: (b3t1.c1 = b3t4.c1)
2297 -> Tid Scan on t1 b3t1
2298 TID Cond: (ctid = '(1,1)'::tid)
2300 -> Tid Scan on t4 b3t4
2301 TID Cond: (ctid = '(1,1)'::tid)
2303 Join Filter: (bmt1.c1 = bmt4.c1)
2304 -> Tid Scan on t4 bmt4
2305 TID Cond: (ctid = '(1,1)'::tid)
2307 Join Filter: (bmt1.c1 = bmt3.c1)
2308 -> Tid Scan on t3 bmt3
2309 TID Cond: (ctid = '(1,1)'::tid)
2311 Join Filter: (bmt1.c1 = bmt2.c1)
2312 -> Seq Scan on t2 bmt2
2313 Filter: (ctid = '(1,1)'::tid)
2315 Join Filter: (c1.c1 = bmt1.c1)
2316 -> Tid Scan on t1 bmt1
2317 TID Cond: (ctid = '(1,1)'::tid)
2319 Join Filter: (c2.c1 = c1.c1)
2321 Join Filter: (c2.c1 = c3.c1)
2328 ---- No. L-2-2 the number of the tables per quiry block
2331 EXPLAIN (COSTS false)
2333 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2335 SELECT max(bmt1.c1), (
2336 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2338 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2340 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2344 -----------------------------------------------------------------
2348 InitPlan 1 (returns $0)
2350 -> Tid Scan on t1 b1t1
2351 TID Cond: (ctid = '(1,1)'::tid)
2352 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2353 InitPlan 4 (returns $3)
2355 InitPlan 3 (returns $2)
2357 -> Tid Scan on t1 b2t1
2358 TID Cond: (ctid = '(1,1)'::tid)
2359 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2360 InitPlan 6 (returns $5)
2362 InitPlan 5 (returns $4)
2364 -> Tid Scan on t1 b3t1
2365 TID Cond: (ctid = '(1,1)'::tid)
2366 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2368 -> Tid Scan on t1 bmt1
2369 TID Cond: (ctid = '(1,1)'::tid)
2370 Filter: ((c1 <> $5) AND (c1 = 1))
2377 EXPLAIN (COSTS false)
2379 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2381 SELECT max(bmt1.c1), (
2382 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2384 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2386 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2397 -----------------------------------------------------------------
2401 InitPlan 1 (returns $0)
2403 -> Tid Scan on t1 b1t1
2404 TID Cond: (ctid = '(1,1)'::tid)
2405 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2406 InitPlan 4 (returns $3)
2408 InitPlan 3 (returns $2)
2410 -> Tid Scan on t1 b2t1
2411 TID Cond: (ctid = '(1,1)'::tid)
2412 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2413 InitPlan 6 (returns $5)
2415 InitPlan 5 (returns $4)
2417 -> Tid Scan on t1 b3t1
2418 TID Cond: (ctid = '(1,1)'::tid)
2419 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2421 -> Tid Scan on t1 bmt1
2422 TID Cond: (ctid = '(1,1)'::tid)
2423 Filter: ((c1 <> $5) AND (c1 = 1))
2428 EXPLAIN (COSTS false)
2430 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)'
2432 SELECT max(bmt1.c1), (
2433 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)'
2435 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2438 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)'
2442 -----------------------------------------------------------
2447 Join Filter: (b1t1.c1 = b1t2.c1)
2448 -> Tid Scan on t1 b1t1
2449 TID Cond: (ctid = '(1,1)'::tid)
2451 -> Seq Scan on t2 b1t2
2452 Filter: (ctid = '(1,1)'::tid)
2453 InitPlan 2 (returns $1)
2456 Join Filter: (b2t1.c1 = b2t2.c1)
2457 -> Tid Scan on t1 b2t1
2458 TID Cond: (ctid = '(1,1)'::tid)
2460 -> Seq Scan on t2 b2t2
2461 Filter: (ctid = '(1,1)'::tid)
2462 InitPlan 3 (returns $2)
2465 Join Filter: (b3t1.c1 = b3t2.c1)
2466 -> Tid Scan on t1 b3t1
2467 TID Cond: (ctid = '(1,1)'::tid)
2469 -> Seq Scan on t2 b3t2
2470 Filter: (ctid = '(1,1)'::tid)
2472 Join Filter: (bmt1.c1 = bmt2.c1)
2473 -> Seq Scan on t2 bmt2
2474 Filter: (ctid = '(1,1)'::tid)
2476 Join Filter: (bmt1.c1 = c1.c1)
2477 -> Tid Scan on t1 bmt1
2478 TID Cond: (ctid = '(1,1)'::tid)
2484 Leading(c1 bmt2 bmt1)
2489 EXPLAIN (COSTS false)
2491 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)'
2493 SELECT max(bmt1.c1), (
2494 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)'
2496 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2499 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)'
2504 Leading(c1 bmt2 bmt1)
2513 -----------------------------------------------------------
2518 Join Filter: (b1t1.c1 = b1t2.c1)
2519 -> Tid Scan on t1 b1t1
2520 TID Cond: (ctid = '(1,1)'::tid)
2522 -> Seq Scan on t2 b1t2
2523 Filter: (ctid = '(1,1)'::tid)
2524 InitPlan 2 (returns $1)
2527 Join Filter: (b2t1.c1 = b2t2.c1)
2528 -> Tid Scan on t1 b2t1
2529 TID Cond: (ctid = '(1,1)'::tid)
2531 -> Seq Scan on t2 b2t2
2532 Filter: (ctid = '(1,1)'::tid)
2533 InitPlan 3 (returns $2)
2536 Join Filter: (b3t1.c1 = b3t2.c1)
2537 -> Tid Scan on t1 b3t1
2538 TID Cond: (ctid = '(1,1)'::tid)
2540 -> Seq Scan on t2 b3t2
2541 Filter: (ctid = '(1,1)'::tid)
2543 Join Filter: (bmt2.c1 = bmt1.c1)
2544 -> Tid Scan on t1 bmt1
2545 TID Cond: (ctid = '(1,1)'::tid)
2548 Join Filter: (bmt2.c1 = c1.c1)
2549 -> Seq Scan on t2 bmt2
2550 Filter: (ctid = '(1,1)'::tid)
2555 EXPLAIN (COSTS false)
2557 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)'
2559 SELECT max(bmt1.c1), (
2560 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)'
2562 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
2564 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)'
2568 -----------------------------------------------------------------------
2573 Join Filter: (b1t1.c1 = b1t4.c1)
2574 -> Tid Scan on t4 b1t4
2575 TID Cond: (ctid = '(1,1)'::tid)
2577 Join Filter: (b1t1.c1 = b1t3.c1)
2578 -> Tid Scan on t3 b1t3
2579 TID Cond: (ctid = '(1,1)'::tid)
2581 Join Filter: (b1t1.c1 = b1t2.c1)
2582 -> Tid Scan on t1 b1t1
2583 TID Cond: (ctid = '(1,1)'::tid)
2585 -> Seq Scan on t2 b1t2
2586 Filter: (ctid = '(1,1)'::tid)
2587 InitPlan 2 (returns $1)
2590 Join Filter: (b2t1.c1 = b2t4.c1)
2591 -> Tid Scan on t4 b2t4
2592 TID Cond: (ctid = '(1,1)'::tid)
2594 Join Filter: (b2t1.c1 = b2t3.c1)
2595 -> Tid Scan on t3 b2t3
2596 TID Cond: (ctid = '(1,1)'::tid)
2598 Join Filter: (b2t1.c1 = b2t2.c1)
2599 -> Tid Scan on t1 b2t1
2600 TID Cond: (ctid = '(1,1)'::tid)
2602 -> Seq Scan on t2 b2t2
2603 Filter: (ctid = '(1,1)'::tid)
2604 InitPlan 3 (returns $2)
2607 Join Filter: (b3t1.c1 = b3t4.c1)
2608 -> Tid Scan on t4 b3t4
2609 TID Cond: (ctid = '(1,1)'::tid)
2611 Join Filter: (b3t1.c1 = b3t3.c1)
2612 -> Tid Scan on t3 b3t3
2613 TID Cond: (ctid = '(1,1)'::tid)
2615 Join Filter: (b3t1.c1 = b3t2.c1)
2616 -> Tid Scan on t1 b3t1
2617 TID Cond: (ctid = '(1,1)'::tid)
2619 -> Seq Scan on t2 b3t2
2620 Filter: (ctid = '(1,1)'::tid)
2622 Join Filter: (bmt1.c1 = bmt4.c1)
2623 -> Tid Scan on t4 bmt4
2624 TID Cond: (ctid = '(1,1)'::tid)
2626 Join Filter: (bmt1.c1 = bmt3.c1)
2627 -> Tid Scan on t3 bmt3
2628 TID Cond: (ctid = '(1,1)'::tid)
2630 Join Filter: (bmt1.c1 = bmt2.c1)
2631 -> Seq Scan on t2 bmt2
2632 Filter: (ctid = '(1,1)'::tid)
2634 Join Filter: (bmt1.c1 = c1.c1)
2635 -> Tid Scan on t1 bmt1
2636 TID Cond: (ctid = '(1,1)'::tid)
2642 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2643 Leading(b1t4 b1t3 b1t2 b1t1)
2644 Leading(b2t4 b2t3 b2t2 b2t1)
2645 Leading(b3t4 b3t3 b3t2 b3t1)
2647 EXPLAIN (COSTS false)
2649 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)'
2651 SELECT max(bmt1.c1), (
2652 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)'
2654 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
2656 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)'
2661 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2662 Leading(b1t4 b1t3 b1t2 b1t1)
2663 Leading(b2t4 b2t3 b2t2 b2t1)
2664 Leading(b3t4 b3t3 b3t2 b3t1)
2670 -------------------------------------------------------------------------
2675 Join Filter: (b1t2.c1 = b1t1.c1)
2676 -> Tid Scan on t1 b1t1
2677 TID Cond: (ctid = '(1,1)'::tid)
2679 Join Filter: (b1t3.c1 = b1t2.c1)
2680 -> Seq Scan on t2 b1t2
2681 Filter: (ctid = '(1,1)'::tid)
2683 Join Filter: (b1t3.c1 = b1t4.c1)
2684 -> Tid Scan on t3 b1t3
2685 TID Cond: (ctid = '(1,1)'::tid)
2687 -> Tid Scan on t4 b1t4
2688 TID Cond: (ctid = '(1,1)'::tid)
2689 InitPlan 2 (returns $1)
2692 Join Filter: (b2t2.c1 = b2t1.c1)
2693 -> Tid Scan on t1 b2t1
2694 TID Cond: (ctid = '(1,1)'::tid)
2696 Join Filter: (b2t3.c1 = b2t2.c1)
2697 -> Seq Scan on t2 b2t2
2698 Filter: (ctid = '(1,1)'::tid)
2700 Join Filter: (b2t3.c1 = b2t4.c1)
2701 -> Tid Scan on t3 b2t3
2702 TID Cond: (ctid = '(1,1)'::tid)
2704 -> Tid Scan on t4 b2t4
2705 TID Cond: (ctid = '(1,1)'::tid)
2706 InitPlan 3 (returns $2)
2709 Join Filter: (b3t2.c1 = b3t1.c1)
2710 -> Tid Scan on t1 b3t1
2711 TID Cond: (ctid = '(1,1)'::tid)
2713 Join Filter: (b3t3.c1 = b3t2.c1)
2714 -> Seq Scan on t2 b3t2
2715 Filter: (ctid = '(1,1)'::tid)
2717 Join Filter: (b3t3.c1 = b3t4.c1)
2718 -> Tid Scan on t3 b3t3
2719 TID Cond: (ctid = '(1,1)'::tid)
2721 -> Tid Scan on t4 b3t4
2722 TID Cond: (ctid = '(1,1)'::tid)
2724 Join Filter: (bmt2.c1 = bmt1.c1)
2725 -> Tid Scan on t1 bmt1
2726 TID Cond: (ctid = '(1,1)'::tid)
2729 Join Filter: (bmt3.c1 = bmt2.c1)
2730 -> Seq Scan on t2 bmt2
2731 Filter: (ctid = '(1,1)'::tid)
2733 Join Filter: (bmt4.c1 = bmt3.c1)
2734 -> Tid Scan on t3 bmt3
2735 TID Cond: (ctid = '(1,1)'::tid)
2737 Join Filter: (bmt4.c1 = c1.c1)
2738 -> Tid Scan on t4 bmt4
2739 TID Cond: (ctid = '(1,1)'::tid)
2744 EXPLAIN (COSTS false)
2746 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)'
2748 SELECT max(bmt1.c1), (
2749 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2751 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
2753 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2757 -----------------------------------------------------------------------
2762 Join Filter: (b1t1.c1 = b1t4.c1)
2763 -> Tid Scan on t4 b1t4
2764 TID Cond: (ctid = '(1,1)'::tid)
2766 Join Filter: (b1t1.c1 = b1t3.c1)
2767 -> Tid Scan on t3 b1t3
2768 TID Cond: (ctid = '(1,1)'::tid)
2770 Join Filter: (b1t1.c1 = b1t2.c1)
2771 -> Tid Scan on t1 b1t1
2772 TID Cond: (ctid = '(1,1)'::tid)
2774 -> Seq Scan on t2 b1t2
2775 Filter: (ctid = '(1,1)'::tid)
2776 InitPlan 3 (returns $2)
2778 InitPlan 2 (returns $1)
2780 -> Tid Scan on t1 b2t1
2781 TID Cond: (ctid = '(1,1)'::tid)
2782 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2783 InitPlan 4 (returns $4)
2785 -> Tid Scan on t1 b3t1
2786 TID Cond: (ctid = '(1,1)'::tid)
2788 Join Filter: (bmt1.c1 = bmt4.c1)
2789 -> Tid Scan on t4 bmt4
2790 TID Cond: (ctid = '(1,1)'::tid)
2792 Join Filter: (bmt1.c1 = bmt3.c1)
2793 -> Tid Scan on t3 bmt3
2794 TID Cond: (ctid = '(1,1)'::tid)
2796 Join Filter: (bmt1.c1 = bmt2.c1)
2797 -> Seq Scan on t2 bmt2
2798 Filter: (ctid = '(1,1)'::tid)
2800 Join Filter: (bmt1.c1 = c1.c1)
2801 -> Tid Scan on t1 bmt1
2802 TID Cond: (ctid = '(1,1)'::tid)
2808 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2809 Leading(b1t4 b1t3 b1t2 b1t1)
2811 EXPLAIN (COSTS false)
2813 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)'
2815 SELECT max(bmt1.c1), (
2816 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2818 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
2820 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2825 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2826 Leading(b1t4 b1t3 b1t2 b1t1)
2832 -------------------------------------------------------------------------
2837 Join Filter: (b1t2.c1 = b1t1.c1)
2838 -> Tid Scan on t1 b1t1
2839 TID Cond: (ctid = '(1,1)'::tid)
2841 Join Filter: (b1t3.c1 = b1t2.c1)
2842 -> Seq Scan on t2 b1t2
2843 Filter: (ctid = '(1,1)'::tid)
2845 Join Filter: (b1t3.c1 = b1t4.c1)
2846 -> Tid Scan on t3 b1t3
2847 TID Cond: (ctid = '(1,1)'::tid)
2849 -> Tid Scan on t4 b1t4
2850 TID Cond: (ctid = '(1,1)'::tid)
2851 InitPlan 3 (returns $2)
2853 InitPlan 2 (returns $1)
2855 -> Tid Scan on t1 b2t1
2856 TID Cond: (ctid = '(1,1)'::tid)
2857 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2858 InitPlan 4 (returns $4)
2860 -> Tid Scan on t1 b3t1
2861 TID Cond: (ctid = '(1,1)'::tid)
2863 Join Filter: (bmt2.c1 = bmt1.c1)
2864 -> Tid Scan on t1 bmt1
2865 TID Cond: (ctid = '(1,1)'::tid)
2868 Join Filter: (bmt3.c1 = bmt2.c1)
2869 -> Seq Scan on t2 bmt2
2870 Filter: (ctid = '(1,1)'::tid)
2872 Join Filter: (bmt4.c1 = bmt3.c1)
2873 -> Tid Scan on t3 bmt3
2874 TID Cond: (ctid = '(1,1)'::tid)
2876 Join Filter: (bmt4.c1 = c1.c1)
2877 -> Tid Scan on t4 bmt4
2878 TID Cond: (ctid = '(1,1)'::tid)
2883 ---- No. L-2-3 RULE or VIEW
2886 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2888 -----------------------------------------------------------------
2891 Join Filter: (t1.c1 = t4.c1)
2893 TID Cond: (ctid = '(1,1)'::tid)
2895 Join Filter: (t1.c1 = t3.c1)
2897 TID Cond: (ctid = '(1,1)'::tid)
2899 Join Filter: (t1.c1 = t2.c1)
2901 Filter: (ctid = '(1,1)'::tid)
2904 TID Cond: (ctid = '(1,1)'::tid)
2907 TID Cond: (ctid = '(1,1)'::tid)
2910 /*+ Leading(t4 t3 t2 t1 r1) */
2911 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2914 Leading(t4 t3 t2 t1 r1)
2920 -----------------------------------------------------------------------
2924 Join Filter: (t2.c1 = t1.c1)
2926 TID Cond: (ctid = '(1,1)'::tid)
2928 Join Filter: (t3.c1 = t2.c1)
2930 Filter: (ctid = '(1,1)'::tid)
2932 Join Filter: (t3.c1 = t4.c1)
2934 TID Cond: (ctid = '(1,1)'::tid)
2937 TID Cond: (ctid = '(1,1)'::tid)
2939 TID Cond: (ctid = '(1,1)'::tid)
2943 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2945 -----------------------------------------------------------------
2948 Join Filter: (b1t1.c1 = b1t4.c1)
2949 -> Tid Scan on t4 b1t4
2950 TID Cond: (ctid = '(1,1)'::tid)
2952 Join Filter: (b1t1.c1 = b1t3.c1)
2953 -> Tid Scan on t3 b1t3
2954 TID Cond: (ctid = '(1,1)'::tid)
2956 Join Filter: (b1t1.c1 = b1t2.c1)
2957 -> Seq Scan on t2 b1t2
2958 Filter: (ctid = '(1,1)'::tid)
2961 TID Cond: (ctid = '(1,1)'::tid)
2963 -> Tid Scan on t1 b1t1
2964 TID Cond: (ctid = '(1,1)'::tid)
2967 /*+ Leading(b1t1 b1t2 b1t3 b1t4 r1_) */
2968 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2971 Leading(b1t1 b1t2 b1t3 b1t4 r1_)
2977 ---------------------------------------------------------------------
2981 Join Filter: (b1t1.c1 = b1t4.c1)
2982 -> Tid Scan on t4 b1t4
2983 TID Cond: (ctid = '(1,1)'::tid)
2985 Join Filter: (b1t1.c1 = b1t3.c1)
2986 -> Tid Scan on t3 b1t3
2987 TID Cond: (ctid = '(1,1)'::tid)
2989 Join Filter: (b1t1.c1 = b1t2.c1)
2990 -> Tid Scan on t1 b1t1
2991 TID Cond: (ctid = '(1,1)'::tid)
2993 -> Seq Scan on t2 b1t2
2994 Filter: (ctid = '(1,1)'::tid)
2996 TID Cond: (ctid = '(1,1)'::tid)
3001 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3003 -----------------------------------------------------------------
3006 Join Filter: (t1.c1 = t4.c1)
3008 TID Cond: (ctid = '(1,1)'::tid)
3010 Join Filter: (t1.c1 = t3.c1)
3012 TID Cond: (ctid = '(1,1)'::tid)
3014 Join Filter: (t1.c1 = t2.c1)
3016 Filter: (ctid = '(1,1)'::tid)
3019 TID Cond: (ctid = '(1,1)'::tid)
3022 TID Cond: (ctid = '(1,1)'::tid)
3026 Join Filter: (t1.c1 = t4.c1)
3028 TID Cond: (ctid = '(1,1)'::tid)
3030 Join Filter: (t1.c1 = t3.c1)
3032 TID Cond: (ctid = '(1,1)'::tid)
3034 Join Filter: (t1.c1 = t2.c1)
3036 Filter: (ctid = '(1,1)'::tid)
3039 TID Cond: (ctid = '(1,1)'::tid)
3042 TID Cond: (ctid = '(1,1)'::tid)
3045 /*+ Leading(t4 t3 t2 t1 r2) */
3046 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3049 Leading(t4 t3 t2 t1 r2)
3056 Leading(t4 t3 t2 t1 r2)
3062 -----------------------------------------------------------------------
3066 Join Filter: (t2.c1 = t1.c1)
3068 TID Cond: (ctid = '(1,1)'::tid)
3070 Join Filter: (t3.c1 = t2.c1)
3072 Filter: (ctid = '(1,1)'::tid)
3074 Join Filter: (t3.c1 = t4.c1)
3076 TID Cond: (ctid = '(1,1)'::tid)
3079 TID Cond: (ctid = '(1,1)'::tid)
3081 TID Cond: (ctid = '(1,1)'::tid)
3087 Join Filter: (t2.c1 = t1.c1)
3089 TID Cond: (ctid = '(1,1)'::tid)
3091 Join Filter: (t3.c1 = t2.c1)
3093 Filter: (ctid = '(1,1)'::tid)
3095 Join Filter: (t3.c1 = t4.c1)
3097 TID Cond: (ctid = '(1,1)'::tid)
3100 TID Cond: (ctid = '(1,1)'::tid)
3102 TID Cond: (ctid = '(1,1)'::tid)
3106 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3108 -----------------------------------------------------------------
3111 Join Filter: (b1t1.c1 = b1t4.c1)
3112 -> Tid Scan on t4 b1t4
3113 TID Cond: (ctid = '(1,1)'::tid)
3115 Join Filter: (b1t1.c1 = b1t3.c1)
3116 -> Tid Scan on t3 b1t3
3117 TID Cond: (ctid = '(1,1)'::tid)
3119 Join Filter: (b1t1.c1 = b1t2.c1)
3120 -> Seq Scan on t2 b1t2
3121 Filter: (ctid = '(1,1)'::tid)
3124 TID Cond: (ctid = '(1,1)'::tid)
3126 -> Tid Scan on t1 b1t1
3127 TID Cond: (ctid = '(1,1)'::tid)
3131 Join Filter: (b2t1.c1 = b2t4.c1)
3132 -> Tid Scan on t4 b2t4
3133 TID Cond: (ctid = '(1,1)'::tid)
3135 Join Filter: (b2t1.c1 = b2t3.c1)
3136 -> Tid Scan on t3 b2t3
3137 TID Cond: (ctid = '(1,1)'::tid)
3139 Join Filter: (b2t1.c1 = b2t2.c1)
3140 -> Seq Scan on t2 b2t2
3141 Filter: (ctid = '(1,1)'::tid)
3144 TID Cond: (ctid = '(1,1)'::tid)
3146 -> Tid Scan on t1 b2t1
3147 TID Cond: (ctid = '(1,1)'::tid)
3151 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3152 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3154 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3157 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3159 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3165 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3167 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3172 ---------------------------------------------------------------------
3176 Join Filter: (b1t1.c1 = b1t4.c1)
3177 -> Tid Scan on t4 b1t4
3178 TID Cond: (ctid = '(1,1)'::tid)
3180 Join Filter: (b1t1.c1 = b1t3.c1)
3181 -> Tid Scan on t3 b1t3
3182 TID Cond: (ctid = '(1,1)'::tid)
3184 Join Filter: (b1t1.c1 = b1t2.c1)
3185 -> Tid Scan on t1 b1t1
3186 TID Cond: (ctid = '(1,1)'::tid)
3188 -> Seq Scan on t2 b1t2
3189 Filter: (ctid = '(1,1)'::tid)
3191 TID Cond: (ctid = '(1,1)'::tid)
3197 Join Filter: (b2t1.c1 = b2t4.c1)
3198 -> Tid Scan on t4 b2t4
3199 TID Cond: (ctid = '(1,1)'::tid)
3201 Join Filter: (b2t1.c1 = b2t3.c1)
3202 -> Tid Scan on t3 b2t3
3203 TID Cond: (ctid = '(1,1)'::tid)
3205 Join Filter: (b2t1.c1 = b2t2.c1)
3206 -> Tid Scan on t1 b2t1
3207 TID Cond: (ctid = '(1,1)'::tid)
3209 -> Seq Scan on t2 b2t2
3210 Filter: (ctid = '(1,1)'::tid)
3212 TID Cond: (ctid = '(1,1)'::tid)
3217 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3219 -----------------------------------------------------------------
3222 Join Filter: (t1.c1 = t4.c1)
3224 TID Cond: (ctid = '(1,1)'::tid)
3226 Join Filter: (t1.c1 = t3.c1)
3228 TID Cond: (ctid = '(1,1)'::tid)
3230 Join Filter: (t1.c1 = t2.c1)
3232 Filter: (ctid = '(1,1)'::tid)
3235 TID Cond: (ctid = '(1,1)'::tid)
3238 TID Cond: (ctid = '(1,1)'::tid)
3242 Join Filter: (t1.c1 = t4.c1)
3244 TID Cond: (ctid = '(1,1)'::tid)
3246 Join Filter: (t1.c1 = t3.c1)
3248 TID Cond: (ctid = '(1,1)'::tid)
3250 Join Filter: (t1.c1 = t2.c1)
3252 Filter: (ctid = '(1,1)'::tid)
3255 TID Cond: (ctid = '(1,1)'::tid)
3258 TID Cond: (ctid = '(1,1)'::tid)
3262 Join Filter: (t1.c1 = t4.c1)
3264 TID Cond: (ctid = '(1,1)'::tid)
3266 Join Filter: (t1.c1 = t3.c1)
3268 TID Cond: (ctid = '(1,1)'::tid)
3270 Join Filter: (t1.c1 = t2.c1)
3272 Filter: (ctid = '(1,1)'::tid)
3275 TID Cond: (ctid = '(1,1)'::tid)
3278 TID Cond: (ctid = '(1,1)'::tid)
3281 /*+ Leading(t4 t3 t2 t1 r3) */
3282 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3285 Leading(t4 t3 t2 t1 r3)
3292 Leading(t4 t3 t2 t1 r3)
3299 Leading(t4 t3 t2 t1 r3)
3305 -----------------------------------------------------------------------
3309 Join Filter: (t2.c1 = t1.c1)
3311 TID Cond: (ctid = '(1,1)'::tid)
3313 Join Filter: (t3.c1 = t2.c1)
3315 Filter: (ctid = '(1,1)'::tid)
3317 Join Filter: (t3.c1 = t4.c1)
3319 TID Cond: (ctid = '(1,1)'::tid)
3322 TID Cond: (ctid = '(1,1)'::tid)
3324 TID Cond: (ctid = '(1,1)'::tid)
3330 Join Filter: (t2.c1 = t1.c1)
3332 TID Cond: (ctid = '(1,1)'::tid)
3334 Join Filter: (t3.c1 = t2.c1)
3336 Filter: (ctid = '(1,1)'::tid)
3338 Join Filter: (t3.c1 = t4.c1)
3340 TID Cond: (ctid = '(1,1)'::tid)
3343 TID Cond: (ctid = '(1,1)'::tid)
3345 TID Cond: (ctid = '(1,1)'::tid)
3351 Join Filter: (t2.c1 = t1.c1)
3353 TID Cond: (ctid = '(1,1)'::tid)
3355 Join Filter: (t3.c1 = t2.c1)
3357 Filter: (ctid = '(1,1)'::tid)
3359 Join Filter: (t3.c1 = t4.c1)
3361 TID Cond: (ctid = '(1,1)'::tid)
3364 TID Cond: (ctid = '(1,1)'::tid)
3366 TID Cond: (ctid = '(1,1)'::tid)
3370 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3372 -----------------------------------------------------------------
3375 Join Filter: (b1t1.c1 = b1t4.c1)
3376 -> Tid Scan on t4 b1t4
3377 TID Cond: (ctid = '(1,1)'::tid)
3379 Join Filter: (b1t1.c1 = b1t3.c1)
3380 -> Tid Scan on t3 b1t3
3381 TID Cond: (ctid = '(1,1)'::tid)
3383 Join Filter: (b1t1.c1 = b1t2.c1)
3384 -> Seq Scan on t2 b1t2
3385 Filter: (ctid = '(1,1)'::tid)
3388 TID Cond: (ctid = '(1,1)'::tid)
3390 -> Tid Scan on t1 b1t1
3391 TID Cond: (ctid = '(1,1)'::tid)
3395 Join Filter: (b2t1.c1 = b2t4.c1)
3396 -> Tid Scan on t4 b2t4
3397 TID Cond: (ctid = '(1,1)'::tid)
3399 Join Filter: (b2t1.c1 = b2t3.c1)
3400 -> Tid Scan on t3 b2t3
3401 TID Cond: (ctid = '(1,1)'::tid)
3403 Join Filter: (b2t1.c1 = b2t2.c1)
3404 -> Seq Scan on t2 b2t2
3405 Filter: (ctid = '(1,1)'::tid)
3408 TID Cond: (ctid = '(1,1)'::tid)
3410 -> Tid Scan on t1 b2t1
3411 TID Cond: (ctid = '(1,1)'::tid)
3415 Join Filter: (b3t1.c1 = b3t4.c1)
3416 -> Tid Scan on t4 b3t4
3417 TID Cond: (ctid = '(1,1)'::tid)
3419 Join Filter: (b3t1.c1 = b3t3.c1)
3420 -> Tid Scan on t3 b3t3
3421 TID Cond: (ctid = '(1,1)'::tid)
3423 Join Filter: (b3t1.c1 = b3t2.c1)
3424 -> Seq Scan on t2 b3t2
3425 Filter: (ctid = '(1,1)'::tid)
3428 TID Cond: (ctid = '(1,1)'::tid)
3430 -> Tid Scan on t1 b3t1
3431 TID Cond: (ctid = '(1,1)'::tid)
3435 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3436 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3437 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3439 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3442 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3444 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3445 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3451 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3453 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3454 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3460 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3462 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3463 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3468 ---------------------------------------------------------------------
3472 Join Filter: (b1t1.c1 = b1t4.c1)
3473 -> Tid Scan on t4 b1t4
3474 TID Cond: (ctid = '(1,1)'::tid)
3476 Join Filter: (b1t1.c1 = b1t3.c1)
3477 -> Tid Scan on t3 b1t3
3478 TID Cond: (ctid = '(1,1)'::tid)
3480 Join Filter: (b1t1.c1 = b1t2.c1)
3481 -> Tid Scan on t1 b1t1
3482 TID Cond: (ctid = '(1,1)'::tid)
3484 -> Seq Scan on t2 b1t2
3485 Filter: (ctid = '(1,1)'::tid)
3487 TID Cond: (ctid = '(1,1)'::tid)
3493 Join Filter: (b2t1.c1 = b2t4.c1)
3494 -> Tid Scan on t4 b2t4
3495 TID Cond: (ctid = '(1,1)'::tid)
3497 Join Filter: (b2t1.c1 = b2t3.c1)
3498 -> Tid Scan on t3 b2t3
3499 TID Cond: (ctid = '(1,1)'::tid)
3501 Join Filter: (b2t1.c1 = b2t2.c1)
3502 -> Tid Scan on t1 b2t1
3503 TID Cond: (ctid = '(1,1)'::tid)
3505 -> Seq Scan on t2 b2t2
3506 Filter: (ctid = '(1,1)'::tid)
3508 TID Cond: (ctid = '(1,1)'::tid)
3514 Join Filter: (b3t1.c1 = b3t4.c1)
3515 -> Tid Scan on t4 b3t4
3516 TID Cond: (ctid = '(1,1)'::tid)
3518 Join Filter: (b3t1.c1 = b3t3.c1)
3519 -> Tid Scan on t3 b3t3
3520 TID Cond: (ctid = '(1,1)'::tid)
3522 Join Filter: (b3t1.c1 = b3t2.c1)
3523 -> Tid Scan on t1 b3t1
3524 TID Cond: (ctid = '(1,1)'::tid)
3526 -> Seq Scan on t2 b3t2
3527 Filter: (ctid = '(1,1)'::tid)
3529 TID Cond: (ctid = '(1,1)'::tid)
3534 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3536 ------------------------------------
3538 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3539 -> Seq Scan on t1 v1t1
3541 -> Seq Scan on t1 v1t1_1
3544 /*+Leading(v1t1 v1t1)*/
3545 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3546 INFO: pg_hint_plan: hint syntax error at or near "Leading(v1t1 v1t1)"
3547 DETAIL: Relation name "v1t1" is ambiguous.
3556 ------------------------------------
3558 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3559 -> Seq Scan on t1 v1t1
3561 -> Seq Scan on t1 v1t1_1
3565 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3567 -----------------------------------
3569 Hash Cond: (v1t1.c1 = v1t1_.c1)
3570 -> Seq Scan on t1 v1t1
3572 -> Seq Scan on t1 v1t1_
3575 /*+Leading(v1t1 v1t1_)*/
3576 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3585 -----------------------------------
3587 Hash Cond: (v1t1.c1 = v1t1_.c1)
3588 -> Seq Scan on t1 v1t1
3590 -> Seq Scan on t1 v1t1_
3594 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3596 ------------------------------------
3598 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3599 -> Seq Scan on t1 r4t1
3601 -> Seq Scan on t1 r4t1_1
3604 /*+Leading(r4t1 r4t1)*/
3605 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3606 INFO: pg_hint_plan: hint syntax error at or near "Leading(r4t1 r4t1)"
3607 DETAIL: Relation name "r4t1" is ambiguous.
3616 ------------------------------------
3618 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3619 -> Seq Scan on t1 r4t1
3621 -> Seq Scan on t1 r4t1_1
3625 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3627 ----------------------------------
3629 Hash Cond: (r4t1.c1 = r5t1.c1)
3630 -> Seq Scan on t1 r4t1
3632 -> Seq Scan on t1 r5t1
3635 /*+Leading(r4t1 r5t1)*/
3636 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3645 ----------------------------------
3647 Hash Cond: (r4t1.c1 = r5t1.c1)
3648 -> Seq Scan on t1 r4t1
3650 -> Seq Scan on t1 r5t1
3654 ---- No. L-2-4 VALUES clause
3657 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;
3659 -------------------------------------------------
3662 Hash Cond: (t2.c1 = "*VALUES*".column1)
3665 -> Values Scan on "*VALUES*"
3666 -> Index Scan using t1_i1 on t1
3667 Index Cond: (c1 = t2.c1)
3670 /*+ Leading(t3 t1 t2) */
3671 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;
3680 -------------------------------------------------
3683 Hash Cond: (t2.c1 = "*VALUES*".column1)
3686 -> Values Scan on "*VALUES*"
3687 -> Index Scan using t1_i1 on t1
3688 Index Cond: (c1 = t2.c1)
3691 /*+ Leading(*VALUES* t1 t2) */
3692 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;
3695 Leading(*VALUES* t1 t2)
3701 -----------------------------------------------------
3704 -> Values Scan on "*VALUES*"
3705 -> Index Scan using t1_i1 on t1
3706 Index Cond: (c1 = "*VALUES*".column1)
3707 -> Index Scan using t2_i1 on t2
3708 Index Cond: (c1 = t1.c1)
3712 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;
3714 -------------------------------------------------------
3717 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3719 Hash Cond: (t2.c1 = "*VALUES*".column1)
3722 -> Values Scan on "*VALUES*"
3724 -> Values Scan on "*VALUES*_1"
3725 -> Index Scan using t1_i1 on t1
3726 Index Cond: (c1 = t2.c1)
3729 /*+ Leading(t4 t3 t2 t1) */
3730 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;
3734 Leading(t4 t3 t2 t1)
3739 -------------------------------------------------------
3742 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3744 Hash Cond: (t2.c1 = "*VALUES*".column1)
3747 -> Values Scan on "*VALUES*"
3749 -> Values Scan on "*VALUES*_1"
3750 -> Index Scan using t1_i1 on t1
3751 Index Cond: (c1 = t2.c1)
3754 /*+ Leading(*VALUES* t3 t2 t1) */
3755 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;
3756 INFO: pg_hint_plan: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) "
3757 DETAIL: Relation name "*VALUES*" is ambiguous.
3763 Leading(*VALUES* t3 t2 t1)
3766 -------------------------------------------------------
3769 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3771 Hash Cond: (t2.c1 = "*VALUES*".column1)
3774 -> Values Scan on "*VALUES*"
3776 -> Values Scan on "*VALUES*_1"
3777 -> Index Scan using t1_i1 on t1
3778 Index Cond: (c1 = t2.c1)
3782 ---- No. L-3-1 leading the order of table joins
3784 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3786 ------------------------------------------
3788 Merge Cond: (t1.c1 = t2.c1)
3790 Merge Cond: (t1.c1 = t3.c1)
3791 -> Index Scan using t1_i1 on t1
3792 -> Index Scan using t3_i1 on t3
3799 /*+Leading(t3 t1 t2)*/
3800 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3809 ------------------------------------------
3811 Merge Cond: (t1.c1 = t2.c1)
3813 Merge Cond: (t1.c1 = t3.c1)
3814 -> Index Scan using t1_i1 on t1
3815 -> Index Scan using t3_i1 on t3
3822 /*+Leading(t1 t2 t3)*/
3823 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3832 ------------------------------------------
3835 Merge Cond: (t1.c1 = t2.c1)
3836 -> Index Scan using t1_i1 on t1
3840 -> Index Scan using t3_i1 on t3
3841 Index Cond: (c1 = t1.c1)
3845 ---- No. L-3-2 GUC parameter to disable hints
3847 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3849 ------------------------------------------
3851 Merge Cond: (t1.c1 = t2.c1)
3853 Merge Cond: (t1.c1 = t3.c1)
3854 -> Index Scan using t1_i1 on t1
3855 -> Index Scan using t3_i1 on t3
3862 Set geqo_threshold = 3;
3864 /*+Leading(t1 t2 t3)*/
3865 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3874 ------------------------------------------
3876 Merge Cond: (t1.c1 = t2.c1)
3878 Merge Cond: (t1.c1 = t3.c1)
3879 -> Index Scan using t1_i1 on t1
3880 -> Index Scan using t3_i1 on t3
3886 Reset geqo_threshold;
3888 Set geqo_threshold = 4;
3890 /*+Leading(t1 t2 t3)*/
3891 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3900 ------------------------------------------
3903 Merge Cond: (t1.c1 = t2.c1)
3904 -> Index Scan using t1_i1 on t1
3908 -> Index Scan using t3_i1 on t3
3909 Index Cond: (c1 = t1.c1)
3912 Reset geqo_threshold;
3914 Set from_collapse_limit = 2;
3915 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3917 -----------------------------------------------------
3919 Hash Cond: (t1.c1 = v2t1.c1)
3923 Merge Cond: (v2t1.c1 = v2t2.c1)
3924 -> Index Scan using t1_i1 on t1 v2t1
3927 -> Seq Scan on t2 v2t2
3930 /*+Leading(t1 v2t1 v2t2)*/
3931 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3934 Leading(t1 v2t1 v2t2)
3940 -----------------------------------------------------
3942 Hash Cond: (t1.c1 = v2t1.c1)
3946 Merge Cond: (v2t1.c1 = v2t2.c1)
3947 -> Index Scan using t1_i1 on t1 v2t1
3950 -> Seq Scan on t2 v2t2
3953 Reset from_collapse_limit;
3955 Set from_collapse_limit = 3;
3956 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3958 -----------------------------------------------
3960 Merge Cond: (v2t1.c1 = v2t2.c1)
3962 Merge Cond: (t1.c1 = v2t1.c1)
3963 -> Index Scan using t1_i1 on t1
3964 -> Index Scan using t1_i1 on t1 v2t1
3967 -> Seq Scan on t2 v2t2
3970 /*+Leading(v2t1 v2t2 t1)*/
3971 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3974 Leading(v2t1 v2t2 t1)
3980 -----------------------------------------------------
3982 Hash Cond: (t1.c1 = v2t1.c1)
3986 Merge Cond: (v2t1.c1 = v2t2.c1)
3987 -> Index Scan using t1_i1 on t1 v2t1
3990 -> Seq Scan on t2 v2t2
3993 Reset from_collapse_limit;
3995 Set join_collapse_limit = 2;
3996 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3997 JOIN s1.t2 ON (t3.c1 = t2.c1)
3998 JOIN s1.t1 ON (t1.c1 = t3.c1);
4000 ------------------------------------------
4002 Hash Cond: (t1.c1 = t3.c1)
4006 Hash Cond: (t3.c1 = t2.c1)
4012 /*+Leading(t1 t2 t3)*/
4013 EXPLAIN (COSTS false) SELECT * FROM s1.t3
4014 JOIN s1.t2 ON (t3.c1 = t2.c1)
4015 JOIN s1.t1 ON (t1.c1 = t3.c1);
4024 ------------------------------------------
4026 Hash Cond: (t1.c1 = t3.c1)
4030 Hash Cond: (t3.c1 = t2.c1)
4036 Reset join_collapse_limit;
4038 Set join_collapse_limit = 3;
4039 EXPLAIN (COSTS false) SELECT * FROM s1.t3
4040 JOIN s1.t2 ON (t3.c1 = t2.c1)
4041 JOIN s1.t1 ON (t1.c1 = t3.c1);
4043 ------------------------------------------
4045 Join Filter: (t2.c1 = t3.c1)
4047 Merge Cond: (t1.c1 = t2.c1)
4048 -> Index Scan using t1_i1 on t1
4052 -> Index Scan using t3_i1 on t3
4053 Index Cond: (c1 = t1.c1)
4056 /*+Leading(t1 t2 t3)*/
4057 EXPLAIN (COSTS false) SELECT * FROM s1.t3
4058 JOIN s1.t2 ON (t3.c1 = t2.c1)
4059 JOIN s1.t1 ON (t1.c1 = t3.c1);
4068 ------------------------------------------
4070 Join Filter: (t2.c1 = t3.c1)
4072 Merge Cond: (t1.c1 = t2.c1)
4073 -> Index Scan using t1_i1 on t1
4077 -> Index Scan using t3_i1 on t3
4078 Index Cond: (c1 = t1.c1)
4081 Reset join_collapse_limit;
4083 ---- No. L-3-3 join between parents or between children
4086 /*+Leading(t1 t2 t3)*/
4087 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4088 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4089 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4098 -------------------------------------------------
4100 Hash Cond: (t1.c1 = t3.c1)
4102 Hash Cond: (t1.c1 = t2.c1)
4104 -> Seq Scan on p2c1 t1
4105 -> Seq Scan on p2c1c1 t1_1
4106 -> Seq Scan on p2c1c2 t1_2
4109 -> Seq Scan on p2c2 t2
4110 -> Seq Scan on p2c2c1 t2_1
4111 -> Seq Scan on p2c2c2 t2_2
4114 -> Seq Scan on p2c3 t3
4115 -> Seq Scan on p2c3c1 t3_1
4116 -> Seq Scan on p2c3c2 t3_2
4120 /*+Leading(p2c1c1 p2c2c1 p2c3c1)*/
4121 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4122 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4123 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4127 Leading(p2c1c1 p2c2c1 p2c3c1)
4132 -------------------------------------------------
4134 Hash Cond: (t1.c1 = t3.c1)
4136 Hash Cond: (t1.c1 = t2.c1)
4138 -> Seq Scan on p2c1 t1
4139 -> Seq Scan on p2c1c1 t1_1
4140 -> Seq Scan on p2c1c2 t1_2
4143 -> Seq Scan on p2c2 t2
4144 -> Seq Scan on p2c2c1 t2_1
4145 -> Seq Scan on p2c2c2 t2_2
4148 -> Seq Scan on p2c3 t3
4149 -> Seq Scan on p2c3c1 t3_1
4150 -> Seq Scan on p2c3c2 t3_2
4154 ---- No. L-3-4 conflict leading hint
4157 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4158 JOIN s1.t2 ON (t1.c1 = t2.c1)
4159 JOIN s1.t3 ON (t1.c1 = t3.c1);
4161 ------------------------------------------
4163 Merge Cond: (t1.c1 = t2.c1)
4165 Merge Cond: (t1.c1 = t3.c1)
4166 -> Index Scan using t1_i1 on t1
4167 -> Index Scan using t3_i1 on t3
4173 /*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4174 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4175 JOIN s1.t2 ON (t1.c1 = t2.c1)
4176 JOIN s1.t3 ON (t1.c1 = t3.c1);
4177 INFO: pg_hint_plan: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4178 DETAIL: Conflict leading hint.
4188 ------------------------------------------
4191 Merge Cond: (t1.c1 = t2.c1)
4192 -> Index Scan using t1_i1 on t1
4196 -> Index Scan using t3_i1 on t3
4197 Index Cond: (c1 = t1.c1)
4201 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4202 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4203 JOIN s1.t2 ON (t1.c1 = t2.c1)
4204 JOIN s1.t3 ON (t1.c1 = t3.c1);
4205 INFO: pg_hint_plan: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
4206 DETAIL: Conflict leading hint.
4207 INFO: pg_hint_plan: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4208 DETAIL: Conflict leading hint.
4219 ------------------------------------------
4222 Merge Cond: (t1.c1 = t2.c1)
4223 -> Index Scan using t1_i1 on t1
4227 -> Index Scan using t3_i1 on t3
4228 Index Cond: (c1 = t1.c1)
4232 /*+Leading(t2 t3 t1)Leading()*/
4233 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4234 JOIN s1.t2 ON (t1.c1 = t2.c1)
4235 JOIN s1.t3 ON (t1.c1 = t3.c1);
4236 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4237 DETAIL: Leading hint requires at least two relations.
4247 ------------------------------------------
4249 Merge Cond: (t1.c1 = t2.c1)
4250 -> Index Scan using t1_i1 on t1
4254 Hash Cond: (t3.c1 = t2.c1)
4261 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
4262 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4263 JOIN s1.t2 ON (t1.c1 = t2.c1)
4264 JOIN s1.t3 ON (t1.c1 = t3.c1);
4265 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4266 DETAIL: Leading hint requires at least two relations.
4267 INFO: pg_hint_plan: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
4268 DETAIL: Conflict leading hint.
4279 ------------------------------------------
4281 Merge Cond: (t1.c1 = t2.c1)
4282 -> Index Scan using t1_i1 on t1
4286 Hash Cond: (t3.c1 = t2.c1)
4293 ---- No. L-3-5 hint state output
4297 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4298 JOIN s1.t2 ON (t1.c1 = t2.c1)
4299 JOIN s1.t3 ON (t1.c1 = t3.c1);
4300 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4301 DETAIL: Leading hint requires at least two relations.
4310 ------------------------------------------
4312 Merge Cond: (t1.c1 = t2.c1)
4314 Merge Cond: (t1.c1 = t3.c1)
4315 -> Index Scan using t1_i1 on t1
4316 -> Index Scan using t3_i1 on t3
4324 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4325 JOIN s1.t2 ON (t1.c1 = t2.c1)
4326 JOIN s1.t3 ON (t1.c1 = t3.c1);
4327 INFO: pg_hint_plan: hint syntax error at or near "Leading(t1)"
4328 DETAIL: Leading hint requires at least two relations.
4337 ------------------------------------------
4339 Merge Cond: (t1.c1 = t2.c1)
4341 Merge Cond: (t1.c1 = t3.c1)
4342 -> Index Scan using t1_i1 on t1
4343 -> Index Scan using t3_i1 on t3
4351 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4352 JOIN s1.t2 ON (t1.c1 = t2.c1)
4353 JOIN s1.t3 ON (t1.c1 = t3.c1);
4362 ------------------------------------------
4365 Merge Cond: (t1.c1 = t2.c1)
4366 -> Index Scan using t1_i1 on t1
4370 -> Index Scan using t3_i1 on t3
4371 Index Cond: (c1 = t1.c1)
4375 /*+Leading(t1 t2 t3)*/
4376 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4377 JOIN s1.t2 ON (t1.c1 = t2.c1)
4378 JOIN s1.t3 ON (t1.c1 = t3.c1);
4387 ------------------------------------------
4390 Merge Cond: (t1.c1 = t2.c1)
4391 -> Index Scan using t1_i1 on t1
4395 -> Index Scan using t3_i1 on t3
4396 Index Cond: (c1 = t1.c1)
4400 ---- No. L-3-6 specified Inner/Outer side
4404 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;
4405 INFO: pg_hint_plan: hint syntax error at or near "Leading((t2))"
4406 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4415 ------------------------------------------------
4418 Merge Cond: (t1.c1 = t2.c1)
4420 Merge Cond: (t1.c1 = t3.c1)
4421 -> Index Scan using t1_i1 on t1
4422 -> Index Scan using t3_i1 on t3
4426 -> Index Scan using t4_i1 on t4
4427 Index Cond: (c1 = t1.c1)
4431 /*+Leading((t2 t3))*/
4432 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;
4441 ------------------------------------------------
4443 Join Filter: (t1.c1 = t4.c1)
4445 Join Filter: (t2.c1 = t1.c1)
4447 -> Index Scan using t2_i1 on t2
4448 -> Index Scan using t3_i1 on t3
4449 Index Cond: (c1 = t2.c1)
4450 -> Index Scan using t1_i1 on t1
4451 Index Cond: (c1 = t3.c1)
4452 -> Index Scan using t4_i1 on t4
4453 Index Cond: (c1 = t3.c1)
4457 /*+Leading((t2 t3 t4))*/
4458 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;
4459 INFO: pg_hint_plan: hint syntax error at or near "Leading((t2 t3 t4))"
4460 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4469 ------------------------------------------------
4472 Merge Cond: (t1.c1 = t2.c1)
4474 Merge Cond: (t1.c1 = t3.c1)
4475 -> Index Scan using t1_i1 on t1
4476 -> Index Scan using t3_i1 on t3
4480 -> Index Scan using t4_i1 on t4
4481 Index Cond: (c1 = t1.c1)
4485 /*+Leading(((t1 t2) (t3 t4)))*/
4486 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;
4489 Leading(((t1 t2) (t3 t4)))
4495 ------------------------------------------
4497 Hash Cond: (t1.c1 = t3.c1)
4499 Merge Cond: (t1.c1 = t2.c1)
4500 -> Index Scan using t1_i1 on t1
4506 Hash Cond: (t3.c1 = t4.c1)
4513 /*+Leading((((t1 t3) t4) t2)))*/
4514 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;
4515 INFO: pg_hint_plan: hint syntax error at or near ")"
4516 DETAIL: Unrecognized hint keyword ")".
4519 Leading((((t1 t3) t4) t2))
4525 ------------------------------------------------
4527 Merge Cond: (t1.c1 = t2.c1)
4529 Merge Cond: (t1.c1 = t4.c1)
4531 Merge Cond: (t1.c1 = t3.c1)
4532 -> Index Scan using t1_i1 on t1
4533 -> Index Scan using t3_i1 on t3
4534 -> Index Scan using t4_i1 on t4
4541 /*+Leading((t1 (t3 (t4 t2))))*/
4542 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;
4545 Leading((t1 (t3 (t4 t2))))
4551 ------------------------------------------------------
4553 Merge Cond: (t1.c1 = t2.c1)
4554 -> Index Scan using t1_i1 on t1
4558 Hash Cond: (t3.c1 = t2.c1)
4562 Hash Cond: (t4.c1 = t2.c1)