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)
1230 Join Filter: (b1t1.c1 = b1t3.c1)
1232 Join Filter: (b1t1.c1 = b1t2.c1)
1233 -> Tid Scan on t1 b1t1
1234 TID Cond: (ctid = '(1,1)'::tid)
1235 -> Seq Scan on t2 b1t2
1236 Filter: (ctid = '(1,1)'::tid)
1237 -> Tid Scan on t3 b1t3
1238 TID Cond: (ctid = '(1,1)'::tid)
1239 -> Tid Scan on t4 b1t4
1240 TID Cond: (ctid = '(1,1)'::tid)
1241 InitPlan 2 (returns $1)
1244 Join Filter: (b2t1.c1 = b2t4.c1)
1246 Join Filter: (b2t1.c1 = b2t3.c1)
1248 Join Filter: (b2t1.c1 = b2t2.c1)
1249 -> Tid Scan on t1 b2t1
1250 TID Cond: (ctid = '(1,1)'::tid)
1251 -> Seq Scan on t2 b2t2
1252 Filter: (ctid = '(1,1)'::tid)
1253 -> Tid Scan on t3 b2t3
1254 TID Cond: (ctid = '(1,1)'::tid)
1255 -> Tid Scan on t4 b2t4
1256 TID Cond: (ctid = '(1,1)'::tid)
1258 Join Filter: (bmt1.c1 = bmt4.c1)
1260 Join Filter: (bmt1.c1 = bmt3.c1)
1262 Join Filter: (bmt1.c1 = bmt2.c1)
1263 -> Tid Scan on t1 bmt1
1264 TID Cond: (ctid = '(1,1)'::tid)
1265 -> Seq Scan on t2 bmt2
1266 Filter: (ctid = '(1,1)'::tid)
1267 -> Tid Scan on t3 bmt3
1268 TID Cond: (ctid = '(1,1)'::tid)
1269 -> Tid Scan on t4 bmt4
1270 TID Cond: (ctid = '(1,1)'::tid)
1274 Leading(bmt1 bmt2 bmt3 bmt4)
1275 Leading(b1t2 b1t3 b1t4 b1t1)
1276 Leading(b2t3 b2t4 b2t1 b2t2)
1278 EXPLAIN (COSTS false)
1279 SELECT max(bmt1.c1), (
1280 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1282 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1284 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1288 Leading(bmt1 bmt2 bmt3 bmt4)
1289 Leading(b1t2 b1t3 b1t4 b1t1)
1290 Leading(b2t3 b2t4 b2t1 b2t2)
1296 -------------------------------------------------------------------
1298 InitPlan 1 (returns $0)
1301 Join Filter: (b1t2.c1 = b1t1.c1)
1303 Join Filter: (b1t2.c1 = b1t4.c1)
1305 Join Filter: (b1t2.c1 = b1t3.c1)
1306 -> Seq Scan on t2 b1t2
1307 Filter: (ctid = '(1,1)'::tid)
1308 -> Tid Scan on t3 b1t3
1309 TID Cond: (ctid = '(1,1)'::tid)
1310 -> Tid Scan on t4 b1t4
1311 TID Cond: (ctid = '(1,1)'::tid)
1312 -> Tid Scan on t1 b1t1
1313 TID Cond: (ctid = '(1,1)'::tid)
1314 InitPlan 2 (returns $1)
1317 Join Filter: (b2t1.c1 = b2t2.c1)
1319 Join Filter: (b2t3.c1 = b2t1.c1)
1321 Join Filter: (b2t3.c1 = b2t4.c1)
1322 -> Tid Scan on t3 b2t3
1323 TID Cond: (ctid = '(1,1)'::tid)
1324 -> Tid Scan on t4 b2t4
1325 TID Cond: (ctid = '(1,1)'::tid)
1326 -> Tid Scan on t1 b2t1
1327 TID Cond: (ctid = '(1,1)'::tid)
1328 -> Seq Scan on t2 b2t2
1329 Filter: (ctid = '(1,1)'::tid)
1331 Join Filter: (bmt1.c1 = bmt4.c1)
1333 Join Filter: (bmt1.c1 = bmt3.c1)
1335 Join Filter: (bmt1.c1 = bmt2.c1)
1336 -> Tid Scan on t1 bmt1
1337 TID Cond: (ctid = '(1,1)'::tid)
1338 -> Seq Scan on t2 bmt2
1339 Filter: (ctid = '(1,1)'::tid)
1340 -> Tid Scan on t3 bmt3
1341 TID Cond: (ctid = '(1,1)'::tid)
1342 -> Tid Scan on t4 bmt4
1343 TID Cond: (ctid = '(1,1)'::tid)
1347 EXPLAIN (COSTS false)
1348 SELECT max(bmt1.c1), (
1349 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1351 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1353 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1355 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1358 -------------------------------------------------------------------
1360 InitPlan 1 (returns $0)
1363 Join Filter: (b1t1.c1 = b1t4.c1)
1365 Join Filter: (b1t1.c1 = b1t3.c1)
1367 Join Filter: (b1t1.c1 = b1t2.c1)
1368 -> Tid Scan on t1 b1t1
1369 TID Cond: (ctid = '(1,1)'::tid)
1370 -> Seq Scan on t2 b1t2
1371 Filter: (ctid = '(1,1)'::tid)
1372 -> Tid Scan on t3 b1t3
1373 TID Cond: (ctid = '(1,1)'::tid)
1374 -> Tid Scan on t4 b1t4
1375 TID Cond: (ctid = '(1,1)'::tid)
1376 InitPlan 2 (returns $1)
1379 Join Filter: (b2t1.c1 = b2t4.c1)
1381 Join Filter: (b2t1.c1 = b2t3.c1)
1383 Join Filter: (b2t1.c1 = b2t2.c1)
1384 -> Tid Scan on t1 b2t1
1385 TID Cond: (ctid = '(1,1)'::tid)
1386 -> Seq Scan on t2 b2t2
1387 Filter: (ctid = '(1,1)'::tid)
1388 -> Tid Scan on t3 b2t3
1389 TID Cond: (ctid = '(1,1)'::tid)
1390 -> Tid Scan on t4 b2t4
1391 TID Cond: (ctid = '(1,1)'::tid)
1392 InitPlan 3 (returns $2)
1395 Join Filter: (b3t1.c1 = b3t4.c1)
1397 Join Filter: (b3t1.c1 = b3t3.c1)
1399 Join Filter: (b3t1.c1 = b3t2.c1)
1400 -> Tid Scan on t1 b3t1
1401 TID Cond: (ctid = '(1,1)'::tid)
1402 -> Seq Scan on t2 b3t2
1403 Filter: (ctid = '(1,1)'::tid)
1404 -> Tid Scan on t3 b3t3
1405 TID Cond: (ctid = '(1,1)'::tid)
1406 -> Tid Scan on t4 b3t4
1407 TID Cond: (ctid = '(1,1)'::tid)
1409 Join Filter: (bmt1.c1 = bmt4.c1)
1411 Join Filter: (bmt1.c1 = bmt3.c1)
1413 Join Filter: (bmt1.c1 = bmt2.c1)
1414 -> Tid Scan on t1 bmt1
1415 TID Cond: (ctid = '(1,1)'::tid)
1416 -> Seq Scan on t2 bmt2
1417 Filter: (ctid = '(1,1)'::tid)
1418 -> Tid Scan on t3 bmt3
1419 TID Cond: (ctid = '(1,1)'::tid)
1420 -> Tid Scan on t4 bmt4
1421 TID Cond: (ctid = '(1,1)'::tid)
1425 Leading(bmt1 bmt2 bmt3 bmt4)
1426 Leading(b1t2 b1t3 b1t4 b1t1)
1427 Leading(b2t3 b2t4 b2t1 b2t2)
1428 Leading(b3t4 b3t1 b3t2 b3t3)
1430 EXPLAIN (COSTS false)
1431 SELECT max(bmt1.c1), (
1432 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1434 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1436 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1438 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1442 Leading(bmt1 bmt2 bmt3 bmt4)
1443 Leading(b1t2 b1t3 b1t4 b1t1)
1444 Leading(b2t3 b2t4 b2t1 b2t2)
1445 Leading(b3t4 b3t1 b3t2 b3t3)
1451 -------------------------------------------------------------------
1453 InitPlan 1 (returns $0)
1456 Join Filter: (b1t2.c1 = b1t1.c1)
1458 Join Filter: (b1t2.c1 = b1t4.c1)
1460 Join Filter: (b1t2.c1 = b1t3.c1)
1461 -> Seq Scan on t2 b1t2
1462 Filter: (ctid = '(1,1)'::tid)
1463 -> Tid Scan on t3 b1t3
1464 TID Cond: (ctid = '(1,1)'::tid)
1465 -> Tid Scan on t4 b1t4
1466 TID Cond: (ctid = '(1,1)'::tid)
1467 -> Tid Scan on t1 b1t1
1468 TID Cond: (ctid = '(1,1)'::tid)
1469 InitPlan 2 (returns $1)
1472 Join Filter: (b2t1.c1 = b2t2.c1)
1474 Join Filter: (b2t3.c1 = b2t1.c1)
1476 Join Filter: (b2t3.c1 = b2t4.c1)
1477 -> Tid Scan on t3 b2t3
1478 TID Cond: (ctid = '(1,1)'::tid)
1479 -> Tid Scan on t4 b2t4
1480 TID Cond: (ctid = '(1,1)'::tid)
1481 -> Tid Scan on t1 b2t1
1482 TID Cond: (ctid = '(1,1)'::tid)
1483 -> Seq Scan on t2 b2t2
1484 Filter: (ctid = '(1,1)'::tid)
1485 InitPlan 3 (returns $2)
1488 Join Filter: (b3t1.c1 = b3t3.c1)
1490 Join Filter: (b3t1.c1 = b3t2.c1)
1492 Join Filter: (b3t1.c1 = b3t4.c1)
1493 -> Tid Scan on t1 b3t1
1494 TID Cond: (ctid = '(1,1)'::tid)
1495 -> Tid Scan on t4 b3t4
1496 TID Cond: (ctid = '(1,1)'::tid)
1497 -> Seq Scan on t2 b3t2
1498 Filter: (ctid = '(1,1)'::tid)
1499 -> Tid Scan on t3 b3t3
1500 TID Cond: (ctid = '(1,1)'::tid)
1502 Join Filter: (bmt1.c1 = bmt4.c1)
1504 Join Filter: (bmt1.c1 = bmt3.c1)
1506 Join Filter: (bmt1.c1 = bmt2.c1)
1507 -> Tid Scan on t1 bmt1
1508 TID Cond: (ctid = '(1,1)'::tid)
1509 -> Seq Scan on t2 bmt2
1510 Filter: (ctid = '(1,1)'::tid)
1511 -> Tid Scan on t3 bmt3
1512 TID Cond: (ctid = '(1,1)'::tid)
1513 -> Tid Scan on t4 bmt4
1514 TID Cond: (ctid = '(1,1)'::tid)
1518 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1520 -----------------------------------------------------------
1523 Join Filter: (bmt1.c1 = bmt4.c1)
1525 Join Filter: (bmt1.c1 = bmt3.c1)
1527 Join Filter: (bmt1.c1 = bmt2.c1)
1528 -> Tid Scan on t1 bmt1
1529 TID Cond: (ctid = '(1,1)'::tid)
1530 -> Seq Scan on t2 bmt2
1531 Filter: (ctid = '(1,1)'::tid)
1532 -> Tid Scan on t3 bmt3
1533 TID Cond: (ctid = '(1,1)'::tid)
1534 -> Tid Scan on t4 bmt4
1535 TID Cond: (ctid = '(1,1)'::tid)
1539 Leading(bmt4 bmt3 bmt2 bmt1)
1541 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1544 Leading(bmt4 bmt3 bmt2 bmt1)
1550 -----------------------------------------------------------
1553 Join Filter: (bmt2.c1 = bmt1.c1)
1555 Join Filter: (bmt3.c1 = bmt2.c1)
1557 Join Filter: (bmt3.c1 = bmt4.c1)
1558 -> Tid Scan on t3 bmt3
1559 TID Cond: (ctid = '(1,1)'::tid)
1560 -> Tid Scan on t4 bmt4
1561 TID Cond: (ctid = '(1,1)'::tid)
1562 -> Seq Scan on t2 bmt2
1563 Filter: (ctid = '(1,1)'::tid)
1564 -> Tid Scan on t1 bmt1
1565 TID Cond: (ctid = '(1,1)'::tid)
1569 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sbmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = sbmt2.c1 AND sbmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1571 -----------------------------------------------------------
1574 Join Filter: (bmt1.c1 = bmt4.c1)
1576 Join Filter: (bmt1.c1 = bmt3.c1)
1578 Join Filter: (bmt1.c1 = bmt2.c1)
1579 -> Tid Scan on t1 bmt1
1580 TID Cond: (ctid = '(1,1)'::tid)
1581 -> Seq Scan on t2 bmt2
1582 Filter: (ctid = '(1,1)'::tid)
1583 -> Tid Scan on t3 bmt3
1584 TID Cond: (ctid = '(1,1)'::tid)
1585 -> Tid Scan on t4 bmt4
1586 TID Cond: (ctid = '(1,1)'::tid)
1590 Leading(bmt4 bmt3 bmt2 bmt1)
1592 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sbmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = sbmt2.c1 AND sbmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1595 Leading(bmt4 bmt3 bmt2 bmt1)
1601 -----------------------------------------------------------
1604 Join Filter: (bmt2.c1 = bmt1.c1)
1606 Join Filter: (bmt3.c1 = bmt2.c1)
1608 Join Filter: (bmt3.c1 = bmt4.c1)
1609 -> Tid Scan on t3 bmt3
1610 TID Cond: (ctid = '(1,1)'::tid)
1611 -> Tid Scan on t4 bmt4
1612 TID Cond: (ctid = '(1,1)'::tid)
1613 -> Seq Scan on t2 bmt2
1614 Filter: (ctid = '(1,1)'::tid)
1615 -> Tid Scan on t1 bmt1
1616 TID Cond: (ctid = '(1,1)'::tid)
1620 EXPLAIN (COSTS false)
1621 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1623 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1625 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1629 -------------------------------------------------------------------
1631 InitPlan 1 (returns $0)
1634 Join Filter: (b1t1.c1 = b1t4.c1)
1636 Join Filter: (b1t1.c1 = b1t3.c1)
1638 Join Filter: (b1t1.c1 = b1t2.c1)
1639 -> Tid Scan on t1 b1t1
1640 TID Cond: (ctid = '(1,1)'::tid)
1641 -> Seq Scan on t2 b1t2
1642 Filter: (ctid = '(1,1)'::tid)
1643 -> Tid Scan on t3 b1t3
1644 TID Cond: (ctid = '(1,1)'::tid)
1645 -> Tid Scan on t4 b1t4
1646 TID Cond: (ctid = '(1,1)'::tid)
1647 InitPlan 2 (returns $1)
1650 Join Filter: (b2t1.c1 = b2t4.c1)
1652 Join Filter: (b2t1.c1 = b2t3.c1)
1654 Join Filter: (b2t1.c1 = b2t2.c1)
1655 -> Tid Scan on t1 b2t1
1656 TID Cond: (ctid = '(1,1)'::tid)
1657 -> Seq Scan on t2 b2t2
1658 Filter: (ctid = '(1,1)'::tid)
1659 -> Tid Scan on t3 b2t3
1660 TID Cond: (ctid = '(1,1)'::tid)
1661 -> Tid Scan on t4 b2t4
1662 TID Cond: (ctid = '(1,1)'::tid)
1664 Join Filter: (bmt1.c1 = bmt4.c1)
1666 Join Filter: (bmt1.c1 = bmt3.c1)
1668 Join Filter: (bmt1.c1 = bmt2.c1)
1669 -> Tid Scan on t1 bmt1
1670 TID Cond: (ctid = '(1,1)'::tid)
1671 Filter: ((c1 <> $0) AND (c1 <> $1))
1672 -> Seq Scan on t2 bmt2
1673 Filter: (ctid = '(1,1)'::tid)
1674 -> Tid Scan on t3 bmt3
1675 TID Cond: (ctid = '(1,1)'::tid)
1676 -> Tid Scan on t4 bmt4
1677 TID Cond: (ctid = '(1,1)'::tid)
1681 Leading(bmt1 bmt2 bmt3 bmt4)
1682 Leading(b1t2 b1t3 b1t4 b1t1)
1683 Leading(b2t3 b2t4 b2t1 b2t2)
1685 EXPLAIN (COSTS false)
1686 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1688 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1690 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1695 Leading(bmt1 bmt2 bmt3 bmt4)
1696 Leading(b1t2 b1t3 b1t4 b1t1)
1697 Leading(b2t3 b2t4 b2t1 b2t2)
1703 -------------------------------------------------------------------
1705 InitPlan 1 (returns $0)
1708 Join Filter: (b1t2.c1 = b1t1.c1)
1710 Join Filter: (b1t2.c1 = b1t4.c1)
1712 Join Filter: (b1t2.c1 = b1t3.c1)
1713 -> Seq Scan on t2 b1t2
1714 Filter: (ctid = '(1,1)'::tid)
1715 -> Tid Scan on t3 b1t3
1716 TID Cond: (ctid = '(1,1)'::tid)
1717 -> Tid Scan on t4 b1t4
1718 TID Cond: (ctid = '(1,1)'::tid)
1719 -> Tid Scan on t1 b1t1
1720 TID Cond: (ctid = '(1,1)'::tid)
1721 InitPlan 2 (returns $1)
1724 Join Filter: (b2t1.c1 = b2t2.c1)
1726 Join Filter: (b2t3.c1 = b2t1.c1)
1728 Join Filter: (b2t3.c1 = b2t4.c1)
1729 -> Tid Scan on t3 b2t3
1730 TID Cond: (ctid = '(1,1)'::tid)
1731 -> Tid Scan on t4 b2t4
1732 TID Cond: (ctid = '(1,1)'::tid)
1733 -> Tid Scan on t1 b2t1
1734 TID Cond: (ctid = '(1,1)'::tid)
1735 -> Seq Scan on t2 b2t2
1736 Filter: (ctid = '(1,1)'::tid)
1738 Join Filter: (bmt1.c1 = bmt4.c1)
1740 Join Filter: (bmt1.c1 = bmt3.c1)
1742 Join Filter: (bmt1.c1 = bmt2.c1)
1743 -> Tid Scan on t1 bmt1
1744 TID Cond: (ctid = '(1,1)'::tid)
1745 Filter: ((c1 <> $0) AND (c1 <> $1))
1746 -> Seq Scan on t2 bmt2
1747 Filter: (ctid = '(1,1)'::tid)
1748 -> Tid Scan on t3 bmt3
1749 TID Cond: (ctid = '(1,1)'::tid)
1750 -> Tid Scan on t4 bmt4
1751 TID Cond: (ctid = '(1,1)'::tid)
1755 EXPLAIN (COSTS false)
1756 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1758 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1760 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1762 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1766 ------------------------------------------------------------------------------
1768 InitPlan 1 (returns $0)
1771 Join Filter: (b1t1.c1 = b1t4.c1)
1773 Join Filter: (b1t1.c1 = b1t3.c1)
1775 Join Filter: (b1t1.c1 = b1t2.c1)
1776 -> Tid Scan on t1 b1t1
1777 TID Cond: (ctid = '(1,1)'::tid)
1778 -> Seq Scan on t2 b1t2
1779 Filter: (ctid = '(1,1)'::tid)
1780 -> Tid Scan on t3 b1t3
1781 TID Cond: (ctid = '(1,1)'::tid)
1782 -> Tid Scan on t4 b1t4
1783 TID Cond: (ctid = '(1,1)'::tid)
1784 InitPlan 2 (returns $1)
1787 Join Filter: (b2t1.c1 = b2t4.c1)
1789 Join Filter: (b2t1.c1 = b2t3.c1)
1791 Join Filter: (b2t1.c1 = b2t2.c1)
1792 -> Tid Scan on t1 b2t1
1793 TID Cond: (ctid = '(1,1)'::tid)
1794 -> Seq Scan on t2 b2t2
1795 Filter: (ctid = '(1,1)'::tid)
1796 -> Tid Scan on t3 b2t3
1797 TID Cond: (ctid = '(1,1)'::tid)
1798 -> Tid Scan on t4 b2t4
1799 TID Cond: (ctid = '(1,1)'::tid)
1800 InitPlan 3 (returns $2)
1803 Join Filter: (b3t1.c1 = b3t4.c1)
1805 Join Filter: (b3t1.c1 = b3t3.c1)
1807 Join Filter: (b3t1.c1 = b3t2.c1)
1808 -> Tid Scan on t1 b3t1
1809 TID Cond: (ctid = '(1,1)'::tid)
1810 -> Seq Scan on t2 b3t2
1811 Filter: (ctid = '(1,1)'::tid)
1812 -> Tid Scan on t3 b3t3
1813 TID Cond: (ctid = '(1,1)'::tid)
1814 -> Tid Scan on t4 b3t4
1815 TID Cond: (ctid = '(1,1)'::tid)
1817 Join Filter: (bmt1.c1 = bmt4.c1)
1819 Join Filter: (bmt1.c1 = bmt3.c1)
1821 Join Filter: (bmt1.c1 = bmt2.c1)
1822 -> Tid Scan on t1 bmt1
1823 TID Cond: (ctid = '(1,1)'::tid)
1824 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1825 -> Seq Scan on t2 bmt2
1826 Filter: (ctid = '(1,1)'::tid)
1827 -> Tid Scan on t3 bmt3
1828 TID Cond: (ctid = '(1,1)'::tid)
1829 -> Tid Scan on t4 bmt4
1830 TID Cond: (ctid = '(1,1)'::tid)
1834 Leading(bmt1 bmt2 bmt3 bmt4)
1835 Leading(b1t2 b1t3 b1t4 b1t1)
1836 Leading(b2t3 b2t4 b2t1 b2t2)
1837 Leading(b3t4 b3t1 b3t2 b3t3)
1839 EXPLAIN (COSTS false)
1840 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1842 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1844 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1846 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1851 Leading(bmt1 bmt2 bmt3 bmt4)
1852 Leading(b1t2 b1t3 b1t4 b1t1)
1853 Leading(b2t3 b2t4 b2t1 b2t2)
1854 Leading(b3t4 b3t1 b3t2 b3t3)
1860 ------------------------------------------------------------------------------
1862 InitPlan 1 (returns $0)
1865 Join Filter: (b1t2.c1 = b1t1.c1)
1867 Join Filter: (b1t2.c1 = b1t4.c1)
1869 Join Filter: (b1t2.c1 = b1t3.c1)
1870 -> Seq Scan on t2 b1t2
1871 Filter: (ctid = '(1,1)'::tid)
1872 -> Tid Scan on t3 b1t3
1873 TID Cond: (ctid = '(1,1)'::tid)
1874 -> Tid Scan on t4 b1t4
1875 TID Cond: (ctid = '(1,1)'::tid)
1876 -> Tid Scan on t1 b1t1
1877 TID Cond: (ctid = '(1,1)'::tid)
1878 InitPlan 2 (returns $1)
1881 Join Filter: (b2t1.c1 = b2t2.c1)
1883 Join Filter: (b2t3.c1 = b2t1.c1)
1885 Join Filter: (b2t3.c1 = b2t4.c1)
1886 -> Tid Scan on t3 b2t3
1887 TID Cond: (ctid = '(1,1)'::tid)
1888 -> Tid Scan on t4 b2t4
1889 TID Cond: (ctid = '(1,1)'::tid)
1890 -> Tid Scan on t1 b2t1
1891 TID Cond: (ctid = '(1,1)'::tid)
1892 -> Seq Scan on t2 b2t2
1893 Filter: (ctid = '(1,1)'::tid)
1894 InitPlan 3 (returns $2)
1897 Join Filter: (b3t1.c1 = b3t3.c1)
1899 Join Filter: (b3t1.c1 = b3t2.c1)
1901 Join Filter: (b3t1.c1 = b3t4.c1)
1902 -> Tid Scan on t1 b3t1
1903 TID Cond: (ctid = '(1,1)'::tid)
1904 -> Tid Scan on t4 b3t4
1905 TID Cond: (ctid = '(1,1)'::tid)
1906 -> Seq Scan on t2 b3t2
1907 Filter: (ctid = '(1,1)'::tid)
1908 -> Tid Scan on t3 b3t3
1909 TID Cond: (ctid = '(1,1)'::tid)
1911 Join Filter: (bmt1.c1 = bmt4.c1)
1913 Join Filter: (bmt1.c1 = bmt3.c1)
1915 Join Filter: (bmt1.c1 = bmt2.c1)
1916 -> Tid Scan on t1 bmt1
1917 TID Cond: (ctid = '(1,1)'::tid)
1918 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1919 -> Seq Scan on t2 bmt2
1920 Filter: (ctid = '(1,1)'::tid)
1921 -> Tid Scan on t3 bmt3
1922 TID Cond: (ctid = '(1,1)'::tid)
1923 -> Tid Scan on t4 bmt4
1924 TID Cond: (ctid = '(1,1)'::tid)
1928 EXPLAIN (COSTS false)
1930 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1933 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1935 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1937 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1942 -----------------------------------------------------------------------
1947 Join Filter: (b1t1.c1 = b1t4.c1)
1949 Join Filter: (b1t1.c1 = b1t3.c1)
1951 Join Filter: (b1t1.c1 = b1t2.c1)
1952 -> Tid Scan on t1 b1t1
1953 TID Cond: (ctid = '(1,1)'::tid)
1954 -> Seq Scan on t2 b1t2
1955 Filter: (ctid = '(1,1)'::tid)
1956 -> Tid Scan on t3 b1t3
1957 TID Cond: (ctid = '(1,1)'::tid)
1958 -> Tid Scan on t4 b1t4
1959 TID Cond: (ctid = '(1,1)'::tid)
1963 Join Filter: (b2t1.c1 = b2t4.c1)
1965 Join Filter: (b2t1.c1 = b2t3.c1)
1967 Join Filter: (b2t1.c1 = b2t2.c1)
1968 -> Tid Scan on t1 b2t1
1969 TID Cond: (ctid = '(1,1)'::tid)
1970 -> Seq Scan on t2 b2t2
1971 Filter: (ctid = '(1,1)'::tid)
1972 -> Tid Scan on t3 b2t3
1973 TID Cond: (ctid = '(1,1)'::tid)
1974 -> Tid Scan on t4 b2t4
1975 TID Cond: (ctid = '(1,1)'::tid)
1977 Join Filter: (bmt1.c1 = c2.c1)
1979 Join Filter: (bmt1.c1 = c1.c1)
1981 Join Filter: (bmt1.c1 = bmt4.c1)
1983 Join Filter: (bmt1.c1 = bmt3.c1)
1985 Join Filter: (bmt1.c1 = bmt2.c1)
1986 -> Tid Scan on t1 bmt1
1987 TID Cond: (ctid = '(1,1)'::tid)
1988 -> Seq Scan on t2 bmt2
1989 Filter: (ctid = '(1,1)'::tid)
1990 -> Tid Scan on t3 bmt3
1991 TID Cond: (ctid = '(1,1)'::tid)
1992 -> Tid Scan on t4 bmt4
1993 TID Cond: (ctid = '(1,1)'::tid)
1999 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2000 Leading(b1t2 b1t3 b1t4 b1t1)
2001 Leading(b2t3 b2t4 b2t1 b2t2)
2003 EXPLAIN (COSTS false)
2005 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)'
2008 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)'
2010 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2012 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)'
2018 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2019 Leading(b1t2 b1t3 b1t4 b1t1)
2020 Leading(b2t3 b2t4 b2t1 b2t2)
2026 -------------------------------------------------------------------
2031 Join Filter: (b1t2.c1 = b1t1.c1)
2033 Join Filter: (b1t2.c1 = b1t4.c1)
2035 Join Filter: (b1t2.c1 = b1t3.c1)
2036 -> Seq Scan on t2 b1t2
2037 Filter: (ctid = '(1,1)'::tid)
2038 -> Tid Scan on t3 b1t3
2039 TID Cond: (ctid = '(1,1)'::tid)
2040 -> Tid Scan on t4 b1t4
2041 TID Cond: (ctid = '(1,1)'::tid)
2042 -> Tid Scan on t1 b1t1
2043 TID Cond: (ctid = '(1,1)'::tid)
2047 Join Filter: (b2t1.c1 = b2t2.c1)
2049 Join Filter: (b2t3.c1 = b2t1.c1)
2051 Join Filter: (b2t3.c1 = b2t4.c1)
2052 -> Tid Scan on t3 b2t3
2053 TID Cond: (ctid = '(1,1)'::tid)
2054 -> Tid Scan on t4 b2t4
2055 TID Cond: (ctid = '(1,1)'::tid)
2056 -> Tid Scan on t1 b2t1
2057 TID Cond: (ctid = '(1,1)'::tid)
2058 -> Seq Scan on t2 b2t2
2059 Filter: (ctid = '(1,1)'::tid)
2061 Join Filter: (bmt1.c1 = bmt4.c1)
2063 Join Filter: (bmt1.c1 = bmt3.c1)
2065 Join Filter: (bmt1.c1 = bmt2.c1)
2067 Join Filter: (c1.c1 = bmt1.c1)
2069 Join Filter: (c1.c1 = c2.c1)
2072 -> Tid Scan on t1 bmt1
2073 TID Cond: (ctid = '(1,1)'::tid)
2074 -> Seq Scan on t2 bmt2
2075 Filter: (ctid = '(1,1)'::tid)
2076 -> Tid Scan on t3 bmt3
2077 TID Cond: (ctid = '(1,1)'::tid)
2078 -> Tid Scan on t4 bmt4
2079 TID Cond: (ctid = '(1,1)'::tid)
2083 EXPLAIN (COSTS false)
2085 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)'
2088 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)'
2091 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)'
2093 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2095 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)'
2101 -----------------------------------------------------------------------------
2106 Join Filter: (b1t1.c1 = b1t4.c1)
2108 Join Filter: (b1t1.c1 = b1t3.c1)
2110 Join Filter: (b1t1.c1 = b1t2.c1)
2111 -> Tid Scan on t1 b1t1
2112 TID Cond: (ctid = '(1,1)'::tid)
2113 -> Seq Scan on t2 b1t2
2114 Filter: (ctid = '(1,1)'::tid)
2115 -> Tid Scan on t3 b1t3
2116 TID Cond: (ctid = '(1,1)'::tid)
2117 -> Tid Scan on t4 b1t4
2118 TID Cond: (ctid = '(1,1)'::tid)
2122 Join Filter: (b2t1.c1 = b2t4.c1)
2124 Join Filter: (b2t1.c1 = b2t3.c1)
2126 Join Filter: (b2t1.c1 = b2t2.c1)
2127 -> Tid Scan on t1 b2t1
2128 TID Cond: (ctid = '(1,1)'::tid)
2129 -> Seq Scan on t2 b2t2
2130 Filter: (ctid = '(1,1)'::tid)
2131 -> Tid Scan on t3 b2t3
2132 TID Cond: (ctid = '(1,1)'::tid)
2133 -> Tid Scan on t4 b2t4
2134 TID Cond: (ctid = '(1,1)'::tid)
2138 Join Filter: (b3t1.c1 = b3t4.c1)
2140 Join Filter: (b3t1.c1 = b3t3.c1)
2142 Join Filter: (b3t1.c1 = b3t2.c1)
2143 -> Tid Scan on t1 b3t1
2144 TID Cond: (ctid = '(1,1)'::tid)
2145 -> Seq Scan on t2 b3t2
2146 Filter: (ctid = '(1,1)'::tid)
2147 -> Tid Scan on t3 b3t3
2148 TID Cond: (ctid = '(1,1)'::tid)
2149 -> Tid Scan on t4 b3t4
2150 TID Cond: (ctid = '(1,1)'::tid)
2152 Join Filter: (bmt1.c1 = c3.c1)
2154 Join Filter: (bmt1.c1 = c2.c1)
2156 Join Filter: (bmt1.c1 = c1.c1)
2158 Join Filter: (bmt1.c1 = bmt4.c1)
2160 Join Filter: (bmt1.c1 = bmt3.c1)
2162 Join Filter: (bmt1.c1 = bmt2.c1)
2163 -> Tid Scan on t1 bmt1
2164 TID Cond: (ctid = '(1,1)'::tid)
2165 -> Seq Scan on t2 bmt2
2166 Filter: (ctid = '(1,1)'::tid)
2167 -> Tid Scan on t3 bmt3
2168 TID Cond: (ctid = '(1,1)'::tid)
2169 -> Tid Scan on t4 bmt4
2170 TID Cond: (ctid = '(1,1)'::tid)
2177 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2178 Leading(b1t2 b1t3 b1t4 b1t1)
2179 Leading(b2t3 b2t4 b2t1 b2t2)
2180 Leading(b3t4 b3t1 b3t2 b3t3)
2182 EXPLAIN (COSTS false)
2184 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)'
2187 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)'
2190 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)'
2192 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2194 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)'
2201 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2202 Leading(b1t2 b1t3 b1t4 b1t1)
2203 Leading(b2t3 b2t4 b2t1 b2t2)
2204 Leading(b3t4 b3t1 b3t2 b3t3)
2210 --------------------------------------------------------------------
2215 Join Filter: (b1t2.c1 = b1t1.c1)
2217 Join Filter: (b1t2.c1 = b1t4.c1)
2219 Join Filter: (b1t2.c1 = b1t3.c1)
2220 -> Seq Scan on t2 b1t2
2221 Filter: (ctid = '(1,1)'::tid)
2222 -> Tid Scan on t3 b1t3
2223 TID Cond: (ctid = '(1,1)'::tid)
2224 -> Tid Scan on t4 b1t4
2225 TID Cond: (ctid = '(1,1)'::tid)
2226 -> Tid Scan on t1 b1t1
2227 TID Cond: (ctid = '(1,1)'::tid)
2231 Join Filter: (b2t1.c1 = b2t2.c1)
2233 Join Filter: (b2t3.c1 = b2t1.c1)
2235 Join Filter: (b2t3.c1 = b2t4.c1)
2236 -> Tid Scan on t3 b2t3
2237 TID Cond: (ctid = '(1,1)'::tid)
2238 -> Tid Scan on t4 b2t4
2239 TID Cond: (ctid = '(1,1)'::tid)
2240 -> Tid Scan on t1 b2t1
2241 TID Cond: (ctid = '(1,1)'::tid)
2242 -> Seq Scan on t2 b2t2
2243 Filter: (ctid = '(1,1)'::tid)
2247 Join Filter: (b3t1.c1 = b3t3.c1)
2249 Join Filter: (b3t1.c1 = b3t2.c1)
2251 Join Filter: (b3t1.c1 = b3t4.c1)
2252 -> Tid Scan on t1 b3t1
2253 TID Cond: (ctid = '(1,1)'::tid)
2254 -> Tid Scan on t4 b3t4
2255 TID Cond: (ctid = '(1,1)'::tid)
2256 -> Seq Scan on t2 b3t2
2257 Filter: (ctid = '(1,1)'::tid)
2258 -> Tid Scan on t3 b3t3
2259 TID Cond: (ctid = '(1,1)'::tid)
2261 Join Filter: (bmt1.c1 = bmt4.c1)
2263 Join Filter: (bmt1.c1 = bmt3.c1)
2265 Join Filter: (bmt1.c1 = bmt2.c1)
2267 Join Filter: (c1.c1 = bmt1.c1)
2269 Join Filter: (c2.c1 = c1.c1)
2271 Join Filter: (c2.c1 = c3.c1)
2275 -> Tid Scan on t1 bmt1
2276 TID Cond: (ctid = '(1,1)'::tid)
2277 -> Seq Scan on t2 bmt2
2278 Filter: (ctid = '(1,1)'::tid)
2279 -> Tid Scan on t3 bmt3
2280 TID Cond: (ctid = '(1,1)'::tid)
2281 -> Tid Scan on t4 bmt4
2282 TID Cond: (ctid = '(1,1)'::tid)
2286 ---- No. L-2-2 the number of the tables per quiry block
2289 EXPLAIN (COSTS false)
2291 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2293 SELECT max(bmt1.c1), (
2294 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2296 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2298 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2302 -----------------------------------------------------------------
2306 InitPlan 1 (returns $0)
2308 -> Tid Scan on t1 b1t1
2309 TID Cond: (ctid = '(1,1)'::tid)
2310 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2311 InitPlan 4 (returns $3)
2313 InitPlan 3 (returns $2)
2315 -> Tid Scan on t1 b2t1
2316 TID Cond: (ctid = '(1,1)'::tid)
2317 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2318 InitPlan 6 (returns $5)
2320 InitPlan 5 (returns $4)
2322 -> Tid Scan on t1 b3t1
2323 TID Cond: (ctid = '(1,1)'::tid)
2324 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2326 -> Tid Scan on t1 bmt1
2327 TID Cond: (ctid = '(1,1)'::tid)
2328 Filter: ((c1 <> $5) AND (c1 = 1))
2335 EXPLAIN (COSTS false)
2337 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2339 SELECT max(bmt1.c1), (
2340 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2342 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2344 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2355 -----------------------------------------------------------------
2359 InitPlan 1 (returns $0)
2361 -> Tid Scan on t1 b1t1
2362 TID Cond: (ctid = '(1,1)'::tid)
2363 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2364 InitPlan 4 (returns $3)
2366 InitPlan 3 (returns $2)
2368 -> Tid Scan on t1 b2t1
2369 TID Cond: (ctid = '(1,1)'::tid)
2370 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2371 InitPlan 6 (returns $5)
2373 InitPlan 5 (returns $4)
2375 -> Tid Scan on t1 b3t1
2376 TID Cond: (ctid = '(1,1)'::tid)
2377 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2379 -> Tid Scan on t1 bmt1
2380 TID Cond: (ctid = '(1,1)'::tid)
2381 Filter: ((c1 <> $5) AND (c1 = 1))
2386 EXPLAIN (COSTS false)
2388 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)'
2390 SELECT max(bmt1.c1), (
2391 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)'
2393 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2396 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)'
2400 -------------------------------------------------------
2405 Join Filter: (b1t1.c1 = b1t2.c1)
2406 -> Tid Scan on t1 b1t1
2407 TID Cond: (ctid = '(1,1)'::tid)
2408 -> Seq Scan on t2 b1t2
2409 Filter: (ctid = '(1,1)'::tid)
2410 InitPlan 2 (returns $1)
2413 Join Filter: (b2t1.c1 = b2t2.c1)
2414 -> Tid Scan on t1 b2t1
2415 TID Cond: (ctid = '(1,1)'::tid)
2416 -> Seq Scan on t2 b2t2
2417 Filter: (ctid = '(1,1)'::tid)
2418 InitPlan 3 (returns $2)
2421 Join Filter: (b3t1.c1 = b3t2.c1)
2422 -> Tid Scan on t1 b3t1
2423 TID Cond: (ctid = '(1,1)'::tid)
2424 -> Seq Scan on t2 b3t2
2425 Filter: (ctid = '(1,1)'::tid)
2427 Join Filter: (bmt1.c1 = c1.c1)
2429 Join Filter: (bmt1.c1 = bmt2.c1)
2430 -> Tid Scan on t1 bmt1
2431 TID Cond: (ctid = '(1,1)'::tid)
2433 -> Seq Scan on t2 bmt2
2434 Filter: (ctid = '(1,1)'::tid)
2439 Leading(c1 bmt2 bmt1)
2444 EXPLAIN (COSTS false)
2446 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)'
2448 SELECT max(bmt1.c1), (
2449 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)'
2451 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2454 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)'
2459 Leading(c1 bmt2 bmt1)
2468 -------------------------------------------------------
2473 Join Filter: (b1t1.c1 = b1t2.c1)
2474 -> Tid Scan on t1 b1t1
2475 TID Cond: (ctid = '(1,1)'::tid)
2476 -> Seq Scan on t2 b1t2
2477 Filter: (ctid = '(1,1)'::tid)
2478 InitPlan 2 (returns $1)
2481 Join Filter: (b2t1.c1 = b2t2.c1)
2482 -> Tid Scan on t1 b2t1
2483 TID Cond: (ctid = '(1,1)'::tid)
2484 -> Seq Scan on t2 b2t2
2485 Filter: (ctid = '(1,1)'::tid)
2486 InitPlan 3 (returns $2)
2489 Join Filter: (b3t1.c1 = b3t2.c1)
2490 -> Tid Scan on t1 b3t1
2491 TID Cond: (ctid = '(1,1)'::tid)
2492 -> Seq Scan on t2 b3t2
2493 Filter: (ctid = '(1,1)'::tid)
2495 Join Filter: (bmt2.c1 = bmt1.c1)
2497 Join Filter: (bmt2.c1 = c1.c1)
2498 -> Seq Scan on t2 bmt2
2499 Filter: (ctid = '(1,1)'::tid)
2501 -> Tid Scan on t1 bmt1
2502 TID Cond: (ctid = '(1,1)'::tid)
2507 EXPLAIN (COSTS false)
2509 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)'
2511 SELECT max(bmt1.c1), (
2512 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)'
2514 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
2516 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)'
2520 -------------------------------------------------------------------
2525 Join Filter: (b1t1.c1 = b1t4.c1)
2527 Join Filter: (b1t1.c1 = b1t3.c1)
2529 Join Filter: (b1t1.c1 = b1t2.c1)
2530 -> Tid Scan on t1 b1t1
2531 TID Cond: (ctid = '(1,1)'::tid)
2532 -> Seq Scan on t2 b1t2
2533 Filter: (ctid = '(1,1)'::tid)
2534 -> Tid Scan on t3 b1t3
2535 TID Cond: (ctid = '(1,1)'::tid)
2536 -> Tid Scan on t4 b1t4
2537 TID Cond: (ctid = '(1,1)'::tid)
2538 InitPlan 2 (returns $1)
2541 Join Filter: (b2t1.c1 = b2t4.c1)
2543 Join Filter: (b2t1.c1 = b2t3.c1)
2545 Join Filter: (b2t1.c1 = b2t2.c1)
2546 -> Tid Scan on t1 b2t1
2547 TID Cond: (ctid = '(1,1)'::tid)
2548 -> Seq Scan on t2 b2t2
2549 Filter: (ctid = '(1,1)'::tid)
2550 -> Tid Scan on t3 b2t3
2551 TID Cond: (ctid = '(1,1)'::tid)
2552 -> Tid Scan on t4 b2t4
2553 TID Cond: (ctid = '(1,1)'::tid)
2554 InitPlan 3 (returns $2)
2557 Join Filter: (b3t1.c1 = b3t4.c1)
2559 Join Filter: (b3t1.c1 = b3t3.c1)
2561 Join Filter: (b3t1.c1 = b3t2.c1)
2562 -> Tid Scan on t1 b3t1
2563 TID Cond: (ctid = '(1,1)'::tid)
2564 -> Seq Scan on t2 b3t2
2565 Filter: (ctid = '(1,1)'::tid)
2566 -> Tid Scan on t3 b3t3
2567 TID Cond: (ctid = '(1,1)'::tid)
2568 -> Tid Scan on t4 b3t4
2569 TID Cond: (ctid = '(1,1)'::tid)
2571 Join Filter: (bmt1.c1 = c1.c1)
2573 Join Filter: (bmt1.c1 = bmt4.c1)
2575 Join Filter: (bmt1.c1 = bmt3.c1)
2577 Join Filter: (bmt1.c1 = bmt2.c1)
2578 -> Tid Scan on t1 bmt1
2579 TID Cond: (ctid = '(1,1)'::tid)
2581 -> Seq Scan on t2 bmt2
2582 Filter: (ctid = '(1,1)'::tid)
2583 -> Tid Scan on t3 bmt3
2584 TID Cond: (ctid = '(1,1)'::tid)
2585 -> Tid Scan on t4 bmt4
2586 TID Cond: (ctid = '(1,1)'::tid)
2591 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2592 Leading(b1t4 b1t3 b1t2 b1t1)
2593 Leading(b2t4 b2t3 b2t2 b2t1)
2594 Leading(b3t4 b3t3 b3t2 b3t1)
2596 EXPLAIN (COSTS false)
2598 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)'
2600 SELECT max(bmt1.c1), (
2601 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)'
2603 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
2605 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)'
2610 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2611 Leading(b1t4 b1t3 b1t2 b1t1)
2612 Leading(b2t4 b2t3 b2t2 b2t1)
2613 Leading(b3t4 b3t3 b3t2 b3t1)
2619 -------------------------------------------------------------------
2624 Join Filter: (b1t2.c1 = b1t1.c1)
2626 Join Filter: (b1t3.c1 = b1t2.c1)
2628 Join Filter: (b1t3.c1 = b1t4.c1)
2629 -> Tid Scan on t3 b1t3
2630 TID Cond: (ctid = '(1,1)'::tid)
2631 -> Tid Scan on t4 b1t4
2632 TID Cond: (ctid = '(1,1)'::tid)
2633 -> Seq Scan on t2 b1t2
2634 Filter: (ctid = '(1,1)'::tid)
2635 -> Tid Scan on t1 b1t1
2636 TID Cond: (ctid = '(1,1)'::tid)
2637 InitPlan 2 (returns $1)
2640 Join Filter: (b2t2.c1 = b2t1.c1)
2642 Join Filter: (b2t3.c1 = b2t2.c1)
2644 Join Filter: (b2t3.c1 = b2t4.c1)
2645 -> Tid Scan on t3 b2t3
2646 TID Cond: (ctid = '(1,1)'::tid)
2647 -> Tid Scan on t4 b2t4
2648 TID Cond: (ctid = '(1,1)'::tid)
2649 -> Seq Scan on t2 b2t2
2650 Filter: (ctid = '(1,1)'::tid)
2651 -> Tid Scan on t1 b2t1
2652 TID Cond: (ctid = '(1,1)'::tid)
2653 InitPlan 3 (returns $2)
2656 Join Filter: (b3t2.c1 = b3t1.c1)
2658 Join Filter: (b3t3.c1 = b3t2.c1)
2660 Join Filter: (b3t3.c1 = b3t4.c1)
2661 -> Tid Scan on t3 b3t3
2662 TID Cond: (ctid = '(1,1)'::tid)
2663 -> Tid Scan on t4 b3t4
2664 TID Cond: (ctid = '(1,1)'::tid)
2665 -> Seq Scan on t2 b3t2
2666 Filter: (ctid = '(1,1)'::tid)
2667 -> Tid Scan on t1 b3t1
2668 TID Cond: (ctid = '(1,1)'::tid)
2670 Join Filter: (bmt2.c1 = bmt1.c1)
2672 Join Filter: (bmt3.c1 = bmt2.c1)
2674 Join Filter: (bmt4.c1 = bmt3.c1)
2676 Join Filter: (bmt4.c1 = c1.c1)
2677 -> Tid Scan on t4 bmt4
2678 TID Cond: (ctid = '(1,1)'::tid)
2680 -> Tid Scan on t3 bmt3
2681 TID Cond: (ctid = '(1,1)'::tid)
2682 -> Seq Scan on t2 bmt2
2683 Filter: (ctid = '(1,1)'::tid)
2684 -> Tid Scan on t1 bmt1
2685 TID Cond: (ctid = '(1,1)'::tid)
2690 EXPLAIN (COSTS false)
2692 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)'
2694 SELECT max(bmt1.c1), (
2695 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2697 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
2699 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2703 -------------------------------------------------------------------
2708 Join Filter: (b1t1.c1 = b1t4.c1)
2710 Join Filter: (b1t1.c1 = b1t3.c1)
2712 Join Filter: (b1t1.c1 = b1t2.c1)
2713 -> Tid Scan on t1 b1t1
2714 TID Cond: (ctid = '(1,1)'::tid)
2715 -> Seq Scan on t2 b1t2
2716 Filter: (ctid = '(1,1)'::tid)
2717 -> Tid Scan on t3 b1t3
2718 TID Cond: (ctid = '(1,1)'::tid)
2719 -> Tid Scan on t4 b1t4
2720 TID Cond: (ctid = '(1,1)'::tid)
2721 InitPlan 3 (returns $2)
2723 InitPlan 2 (returns $1)
2725 -> Tid Scan on t1 b2t1
2726 TID Cond: (ctid = '(1,1)'::tid)
2727 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2728 InitPlan 4 (returns $4)
2730 -> Tid Scan on t1 b3t1
2731 TID Cond: (ctid = '(1,1)'::tid)
2733 Join Filter: (bmt1.c1 = c1.c1)
2735 Join Filter: (bmt1.c1 = bmt4.c1)
2737 Join Filter: (bmt1.c1 = bmt3.c1)
2739 Join Filter: (bmt1.c1 = bmt2.c1)
2740 -> Tid Scan on t1 bmt1
2741 TID Cond: (ctid = '(1,1)'::tid)
2743 -> Seq Scan on t2 bmt2
2744 Filter: (ctid = '(1,1)'::tid)
2745 -> Tid Scan on t3 bmt3
2746 TID Cond: (ctid = '(1,1)'::tid)
2747 -> Tid Scan on t4 bmt4
2748 TID Cond: (ctid = '(1,1)'::tid)
2753 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2754 Leading(b1t4 b1t3 b1t2 b1t1)
2756 EXPLAIN (COSTS false)
2758 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)'
2760 SELECT max(bmt1.c1), (
2761 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2763 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
2765 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2770 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2771 Leading(b1t4 b1t3 b1t2 b1t1)
2777 -------------------------------------------------------------------
2782 Join Filter: (b1t2.c1 = b1t1.c1)
2784 Join Filter: (b1t3.c1 = b1t2.c1)
2786 Join Filter: (b1t3.c1 = b1t4.c1)
2787 -> Tid Scan on t3 b1t3
2788 TID Cond: (ctid = '(1,1)'::tid)
2789 -> Tid Scan on t4 b1t4
2790 TID Cond: (ctid = '(1,1)'::tid)
2791 -> Seq Scan on t2 b1t2
2792 Filter: (ctid = '(1,1)'::tid)
2793 -> Tid Scan on t1 b1t1
2794 TID Cond: (ctid = '(1,1)'::tid)
2795 InitPlan 3 (returns $2)
2797 InitPlan 2 (returns $1)
2799 -> Tid Scan on t1 b2t1
2800 TID Cond: (ctid = '(1,1)'::tid)
2801 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2802 InitPlan 4 (returns $4)
2804 -> Tid Scan on t1 b3t1
2805 TID Cond: (ctid = '(1,1)'::tid)
2807 Join Filter: (bmt2.c1 = bmt1.c1)
2809 Join Filter: (bmt3.c1 = bmt2.c1)
2811 Join Filter: (bmt4.c1 = bmt3.c1)
2813 Join Filter: (bmt4.c1 = c1.c1)
2814 -> Tid Scan on t4 bmt4
2815 TID Cond: (ctid = '(1,1)'::tid)
2817 -> Tid Scan on t3 bmt3
2818 TID Cond: (ctid = '(1,1)'::tid)
2819 -> Seq Scan on t2 bmt2
2820 Filter: (ctid = '(1,1)'::tid)
2821 -> Tid Scan on t1 bmt1
2822 TID Cond: (ctid = '(1,1)'::tid)
2827 ---- No. L-2-3 RULE or VIEW
2830 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2832 -----------------------------------------------------------------
2835 Join Filter: (t1.c1 = t4.c1)
2837 Join Filter: (t1.c1 = t3.c1)
2839 Join Filter: (t1.c1 = t2.c1)
2842 TID Cond: (ctid = '(1,1)'::tid)
2845 TID Cond: (ctid = '(1,1)'::tid)
2847 Filter: (ctid = '(1,1)'::tid)
2849 TID Cond: (ctid = '(1,1)'::tid)
2851 TID Cond: (ctid = '(1,1)'::tid)
2854 /*+ Leading(t4 t3 t2 t1 r1) */
2855 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2858 Leading(t4 t3 t2 t1 r1)
2864 -----------------------------------------------------------------
2868 Join Filter: (t2.c1 = t1.c1)
2870 Join Filter: (t3.c1 = t2.c1)
2872 Join Filter: (t3.c1 = t4.c1)
2874 TID Cond: (ctid = '(1,1)'::tid)
2876 TID Cond: (ctid = '(1,1)'::tid)
2878 Filter: (ctid = '(1,1)'::tid)
2880 TID Cond: (ctid = '(1,1)'::tid)
2882 TID Cond: (ctid = '(1,1)'::tid)
2886 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2888 -----------------------------------------------------------------
2891 Join Filter: (b1t1.c1 = b1t4.c1)
2893 Join Filter: (b1t1.c1 = b1t3.c1)
2895 Join Filter: (b1t1.c1 = b1t2.c1)
2898 TID Cond: (ctid = '(1,1)'::tid)
2900 -> Tid Scan on t1 b1t1
2901 TID Cond: (ctid = '(1,1)'::tid)
2902 -> Seq Scan on t2 b1t2
2903 Filter: (ctid = '(1,1)'::tid)
2904 -> Tid Scan on t3 b1t3
2905 TID Cond: (ctid = '(1,1)'::tid)
2906 -> Tid Scan on t4 b1t4
2907 TID Cond: (ctid = '(1,1)'::tid)
2910 /*+ Leading(b1t1 b1t2 b1t3 b1t4 r1_) */
2911 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2914 Leading(b1t1 b1t2 b1t3 b1t4 r1_)
2920 -----------------------------------------------------------------
2924 Join Filter: (b1t1.c1 = b1t4.c1)
2926 Join Filter: (b1t1.c1 = b1t3.c1)
2928 Join Filter: (b1t1.c1 = b1t2.c1)
2929 -> Tid Scan on t1 b1t1
2930 TID Cond: (ctid = '(1,1)'::tid)
2931 -> Seq Scan on t2 b1t2
2932 Filter: (ctid = '(1,1)'::tid)
2933 -> Tid Scan on t3 b1t3
2934 TID Cond: (ctid = '(1,1)'::tid)
2935 -> Tid Scan on t4 b1t4
2936 TID Cond: (ctid = '(1,1)'::tid)
2938 TID Cond: (ctid = '(1,1)'::tid)
2943 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2945 -----------------------------------------------------------------
2948 Join Filter: (t1.c1 = t4.c1)
2950 Join Filter: (t1.c1 = t3.c1)
2952 Join Filter: (t1.c1 = t2.c1)
2955 TID Cond: (ctid = '(1,1)'::tid)
2958 TID Cond: (ctid = '(1,1)'::tid)
2960 Filter: (ctid = '(1,1)'::tid)
2962 TID Cond: (ctid = '(1,1)'::tid)
2964 TID Cond: (ctid = '(1,1)'::tid)
2968 Join Filter: (t1.c1 = t4.c1)
2970 Join Filter: (t1.c1 = t3.c1)
2972 Join Filter: (t1.c1 = t2.c1)
2975 TID Cond: (ctid = '(1,1)'::tid)
2978 TID Cond: (ctid = '(1,1)'::tid)
2980 Filter: (ctid = '(1,1)'::tid)
2982 TID Cond: (ctid = '(1,1)'::tid)
2984 TID Cond: (ctid = '(1,1)'::tid)
2987 /*+ Leading(t4 t3 t2 t1 r2) */
2988 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2991 Leading(t4 t3 t2 t1 r2)
2998 Leading(t4 t3 t2 t1 r2)
3004 -----------------------------------------------------------------
3008 Join Filter: (t2.c1 = t1.c1)
3010 Join Filter: (t3.c1 = t2.c1)
3012 Join Filter: (t3.c1 = t4.c1)
3014 TID Cond: (ctid = '(1,1)'::tid)
3016 TID Cond: (ctid = '(1,1)'::tid)
3018 Filter: (ctid = '(1,1)'::tid)
3020 TID Cond: (ctid = '(1,1)'::tid)
3022 TID Cond: (ctid = '(1,1)'::tid)
3028 Join Filter: (t2.c1 = t1.c1)
3030 Join Filter: (t3.c1 = t2.c1)
3032 Join Filter: (t3.c1 = t4.c1)
3034 TID Cond: (ctid = '(1,1)'::tid)
3036 TID Cond: (ctid = '(1,1)'::tid)
3038 Filter: (ctid = '(1,1)'::tid)
3040 TID Cond: (ctid = '(1,1)'::tid)
3042 TID Cond: (ctid = '(1,1)'::tid)
3046 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3048 -----------------------------------------------------------------
3051 Join Filter: (b1t1.c1 = b1t4.c1)
3053 Join Filter: (b1t1.c1 = b1t3.c1)
3055 Join Filter: (b1t1.c1 = b1t2.c1)
3058 TID Cond: (ctid = '(1,1)'::tid)
3060 -> Tid Scan on t1 b1t1
3061 TID Cond: (ctid = '(1,1)'::tid)
3062 -> Seq Scan on t2 b1t2
3063 Filter: (ctid = '(1,1)'::tid)
3064 -> Tid Scan on t3 b1t3
3065 TID Cond: (ctid = '(1,1)'::tid)
3066 -> Tid Scan on t4 b1t4
3067 TID Cond: (ctid = '(1,1)'::tid)
3071 Join Filter: (b2t1.c1 = b2t4.c1)
3073 Join Filter: (b2t1.c1 = b2t3.c1)
3075 Join Filter: (b2t1.c1 = b2t2.c1)
3078 TID Cond: (ctid = '(1,1)'::tid)
3080 -> Tid Scan on t1 b2t1
3081 TID Cond: (ctid = '(1,1)'::tid)
3082 -> Seq Scan on t2 b2t2
3083 Filter: (ctid = '(1,1)'::tid)
3084 -> Tid Scan on t3 b2t3
3085 TID Cond: (ctid = '(1,1)'::tid)
3086 -> Tid Scan on t4 b2t4
3087 TID Cond: (ctid = '(1,1)'::tid)
3091 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3092 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3094 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3097 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3099 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3105 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3107 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3112 -----------------------------------------------------------------
3116 Join Filter: (b1t1.c1 = b1t4.c1)
3118 Join Filter: (b1t1.c1 = b1t3.c1)
3120 Join Filter: (b1t1.c1 = b1t2.c1)
3121 -> Tid Scan on t1 b1t1
3122 TID Cond: (ctid = '(1,1)'::tid)
3123 -> Seq Scan on t2 b1t2
3124 Filter: (ctid = '(1,1)'::tid)
3125 -> Tid Scan on t3 b1t3
3126 TID Cond: (ctid = '(1,1)'::tid)
3127 -> Tid Scan on t4 b1t4
3128 TID Cond: (ctid = '(1,1)'::tid)
3130 TID Cond: (ctid = '(1,1)'::tid)
3136 Join Filter: (b2t1.c1 = b2t4.c1)
3138 Join Filter: (b2t1.c1 = b2t3.c1)
3140 Join Filter: (b2t1.c1 = b2t2.c1)
3141 -> Tid Scan on t1 b2t1
3142 TID Cond: (ctid = '(1,1)'::tid)
3143 -> Seq Scan on t2 b2t2
3144 Filter: (ctid = '(1,1)'::tid)
3145 -> Tid Scan on t3 b2t3
3146 TID Cond: (ctid = '(1,1)'::tid)
3147 -> Tid Scan on t4 b2t4
3148 TID Cond: (ctid = '(1,1)'::tid)
3150 TID Cond: (ctid = '(1,1)'::tid)
3155 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3157 -----------------------------------------------------------------
3160 Join Filter: (t1.c1 = t4.c1)
3162 Join Filter: (t1.c1 = t3.c1)
3164 Join Filter: (t1.c1 = t2.c1)
3167 TID Cond: (ctid = '(1,1)'::tid)
3170 TID Cond: (ctid = '(1,1)'::tid)
3172 Filter: (ctid = '(1,1)'::tid)
3174 TID Cond: (ctid = '(1,1)'::tid)
3176 TID Cond: (ctid = '(1,1)'::tid)
3180 Join Filter: (t1.c1 = t4.c1)
3182 Join Filter: (t1.c1 = t3.c1)
3184 Join Filter: (t1.c1 = t2.c1)
3187 TID Cond: (ctid = '(1,1)'::tid)
3190 TID Cond: (ctid = '(1,1)'::tid)
3192 Filter: (ctid = '(1,1)'::tid)
3194 TID Cond: (ctid = '(1,1)'::tid)
3196 TID Cond: (ctid = '(1,1)'::tid)
3200 Join Filter: (t1.c1 = t4.c1)
3202 Join Filter: (t1.c1 = t3.c1)
3204 Join Filter: (t1.c1 = t2.c1)
3207 TID Cond: (ctid = '(1,1)'::tid)
3210 TID Cond: (ctid = '(1,1)'::tid)
3212 Filter: (ctid = '(1,1)'::tid)
3214 TID Cond: (ctid = '(1,1)'::tid)
3216 TID Cond: (ctid = '(1,1)'::tid)
3219 /*+ Leading(t4 t3 t2 t1 r3) */
3220 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3223 Leading(t4 t3 t2 t1 r3)
3230 Leading(t4 t3 t2 t1 r3)
3237 Leading(t4 t3 t2 t1 r3)
3243 -----------------------------------------------------------------
3247 Join Filter: (t2.c1 = t1.c1)
3249 Join Filter: (t3.c1 = t2.c1)
3251 Join Filter: (t3.c1 = t4.c1)
3253 TID Cond: (ctid = '(1,1)'::tid)
3255 TID Cond: (ctid = '(1,1)'::tid)
3257 Filter: (ctid = '(1,1)'::tid)
3259 TID Cond: (ctid = '(1,1)'::tid)
3261 TID Cond: (ctid = '(1,1)'::tid)
3267 Join Filter: (t2.c1 = t1.c1)
3269 Join Filter: (t3.c1 = t2.c1)
3271 Join Filter: (t3.c1 = t4.c1)
3273 TID Cond: (ctid = '(1,1)'::tid)
3275 TID Cond: (ctid = '(1,1)'::tid)
3277 Filter: (ctid = '(1,1)'::tid)
3279 TID Cond: (ctid = '(1,1)'::tid)
3281 TID Cond: (ctid = '(1,1)'::tid)
3287 Join Filter: (t2.c1 = t1.c1)
3289 Join Filter: (t3.c1 = t2.c1)
3291 Join Filter: (t3.c1 = t4.c1)
3293 TID Cond: (ctid = '(1,1)'::tid)
3295 TID Cond: (ctid = '(1,1)'::tid)
3297 Filter: (ctid = '(1,1)'::tid)
3299 TID Cond: (ctid = '(1,1)'::tid)
3301 TID Cond: (ctid = '(1,1)'::tid)
3305 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3307 -----------------------------------------------------------------
3310 Join Filter: (b1t1.c1 = b1t4.c1)
3312 Join Filter: (b1t1.c1 = b1t3.c1)
3314 Join Filter: (b1t1.c1 = b1t2.c1)
3317 TID Cond: (ctid = '(1,1)'::tid)
3319 -> Tid Scan on t1 b1t1
3320 TID Cond: (ctid = '(1,1)'::tid)
3321 -> Seq Scan on t2 b1t2
3322 Filter: (ctid = '(1,1)'::tid)
3323 -> Tid Scan on t3 b1t3
3324 TID Cond: (ctid = '(1,1)'::tid)
3325 -> Tid Scan on t4 b1t4
3326 TID Cond: (ctid = '(1,1)'::tid)
3330 Join Filter: (b2t1.c1 = b2t4.c1)
3332 Join Filter: (b2t1.c1 = b2t3.c1)
3334 Join Filter: (b2t1.c1 = b2t2.c1)
3337 TID Cond: (ctid = '(1,1)'::tid)
3339 -> Tid Scan on t1 b2t1
3340 TID Cond: (ctid = '(1,1)'::tid)
3341 -> Seq Scan on t2 b2t2
3342 Filter: (ctid = '(1,1)'::tid)
3343 -> Tid Scan on t3 b2t3
3344 TID Cond: (ctid = '(1,1)'::tid)
3345 -> Tid Scan on t4 b2t4
3346 TID Cond: (ctid = '(1,1)'::tid)
3350 Join Filter: (b3t1.c1 = b3t4.c1)
3352 Join Filter: (b3t1.c1 = b3t3.c1)
3354 Join Filter: (b3t1.c1 = b3t2.c1)
3357 TID Cond: (ctid = '(1,1)'::tid)
3359 -> Tid Scan on t1 b3t1
3360 TID Cond: (ctid = '(1,1)'::tid)
3361 -> Seq Scan on t2 b3t2
3362 Filter: (ctid = '(1,1)'::tid)
3363 -> Tid Scan on t3 b3t3
3364 TID Cond: (ctid = '(1,1)'::tid)
3365 -> Tid Scan on t4 b3t4
3366 TID Cond: (ctid = '(1,1)'::tid)
3370 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3371 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3372 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3374 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3377 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3379 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3380 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3386 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3388 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3389 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3395 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3397 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3398 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3403 -----------------------------------------------------------------
3407 Join Filter: (b1t1.c1 = b1t4.c1)
3409 Join Filter: (b1t1.c1 = b1t3.c1)
3411 Join Filter: (b1t1.c1 = b1t2.c1)
3412 -> Tid Scan on t1 b1t1
3413 TID Cond: (ctid = '(1,1)'::tid)
3414 -> Seq Scan on t2 b1t2
3415 Filter: (ctid = '(1,1)'::tid)
3416 -> Tid Scan on t3 b1t3
3417 TID Cond: (ctid = '(1,1)'::tid)
3418 -> Tid Scan on t4 b1t4
3419 TID Cond: (ctid = '(1,1)'::tid)
3421 TID Cond: (ctid = '(1,1)'::tid)
3427 Join Filter: (b2t1.c1 = b2t4.c1)
3429 Join Filter: (b2t1.c1 = b2t3.c1)
3431 Join Filter: (b2t1.c1 = b2t2.c1)
3432 -> Tid Scan on t1 b2t1
3433 TID Cond: (ctid = '(1,1)'::tid)
3434 -> Seq Scan on t2 b2t2
3435 Filter: (ctid = '(1,1)'::tid)
3436 -> Tid Scan on t3 b2t3
3437 TID Cond: (ctid = '(1,1)'::tid)
3438 -> Tid Scan on t4 b2t4
3439 TID Cond: (ctid = '(1,1)'::tid)
3441 TID Cond: (ctid = '(1,1)'::tid)
3447 Join Filter: (b3t1.c1 = b3t4.c1)
3449 Join Filter: (b3t1.c1 = b3t3.c1)
3451 Join Filter: (b3t1.c1 = b3t2.c1)
3452 -> Tid Scan on t1 b3t1
3453 TID Cond: (ctid = '(1,1)'::tid)
3454 -> Seq Scan on t2 b3t2
3455 Filter: (ctid = '(1,1)'::tid)
3456 -> Tid Scan on t3 b3t3
3457 TID Cond: (ctid = '(1,1)'::tid)
3458 -> Tid Scan on t4 b3t4
3459 TID Cond: (ctid = '(1,1)'::tid)
3461 TID Cond: (ctid = '(1,1)'::tid)
3466 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3468 ------------------------------------
3470 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3471 -> Seq Scan on t1 v1t1
3473 -> Seq Scan on t1 v1t1_1
3476 /*+Leading(v1t1 v1t1)*/
3477 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3478 INFO: pg_hint_plan: hint syntax error at or near "Leading(v1t1 v1t1)"
3479 DETAIL: Relation name "v1t1" is ambiguous.
3488 ------------------------------------
3490 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3491 -> Seq Scan on t1 v1t1
3493 -> Seq Scan on t1 v1t1_1
3497 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3499 -----------------------------------
3501 Hash Cond: (v1t1.c1 = v1t1_.c1)
3502 -> Seq Scan on t1 v1t1
3504 -> Seq Scan on t1 v1t1_
3507 /*+Leading(v1t1 v1t1_)*/
3508 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3517 -----------------------------------
3519 Hash Cond: (v1t1.c1 = v1t1_.c1)
3520 -> Seq Scan on t1 v1t1
3522 -> Seq Scan on t1 v1t1_
3526 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3528 ------------------------------------
3530 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3531 -> Seq Scan on t1 r4t1
3533 -> Seq Scan on t1 r4t1_1
3536 /*+Leading(r4t1 r4t1)*/
3537 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3538 INFO: pg_hint_plan: hint syntax error at or near "Leading(r4t1 r4t1)"
3539 DETAIL: Relation name "r4t1" is ambiguous.
3548 ------------------------------------
3550 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3551 -> Seq Scan on t1 r4t1
3553 -> Seq Scan on t1 r4t1_1
3557 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3559 ----------------------------------
3561 Hash Cond: (r4t1.c1 = r5t1.c1)
3562 -> Seq Scan on t1 r4t1
3564 -> Seq Scan on t1 r5t1
3567 /*+Leading(r4t1 r5t1)*/
3568 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3577 ----------------------------------
3579 Hash Cond: (r4t1.c1 = r5t1.c1)
3580 -> Seq Scan on t1 r4t1
3582 -> Seq Scan on t1 r5t1
3586 ---- No. L-2-4 VALUES clause
3589 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;
3591 -------------------------------------------------
3594 Hash Cond: (t2.c1 = "*VALUES*".column1)
3597 -> Values Scan on "*VALUES*"
3598 -> Index Scan using t1_i1 on t1
3599 Index Cond: (c1 = t2.c1)
3602 /*+ Leading(t3 t1 t2) */
3603 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;
3612 -------------------------------------------------
3615 Hash Cond: (t2.c1 = "*VALUES*".column1)
3618 -> Values Scan on "*VALUES*"
3619 -> Index Scan using t1_i1 on t1
3620 Index Cond: (c1 = t2.c1)
3623 /*+ Leading(*VALUES* t1 t2) */
3624 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;
3627 Leading(*VALUES* t1 t2)
3633 -----------------------------------------------------
3636 -> Values Scan on "*VALUES*"
3637 -> Index Scan using t1_i1 on t1
3638 Index Cond: (c1 = "*VALUES*".column1)
3639 -> Index Scan using t2_i1 on t2
3640 Index Cond: (c1 = t1.c1)
3644 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;
3646 -------------------------------------------------------
3649 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3651 Hash Cond: (t2.c1 = "*VALUES*".column1)
3654 -> Values Scan on "*VALUES*"
3656 -> Values Scan on "*VALUES*_1"
3657 -> Index Scan using t1_i1 on t1
3658 Index Cond: (c1 = t2.c1)
3661 /*+ Leading(t4 t3 t2 t1) */
3662 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;
3666 Leading(t4 t3 t2 t1)
3671 -------------------------------------------------------
3674 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3676 Hash Cond: (t2.c1 = "*VALUES*".column1)
3679 -> Values Scan on "*VALUES*"
3681 -> Values Scan on "*VALUES*_1"
3682 -> Index Scan using t1_i1 on t1
3683 Index Cond: (c1 = t2.c1)
3686 /*+ Leading(*VALUES* t3 t2 t1) */
3687 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;
3688 INFO: pg_hint_plan: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) "
3689 DETAIL: Relation name "*VALUES*" is ambiguous.
3695 Leading(*VALUES* t3 t2 t1)
3698 -------------------------------------------------------
3701 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3703 Hash Cond: (t2.c1 = "*VALUES*".column1)
3706 -> Values Scan on "*VALUES*"
3708 -> Values Scan on "*VALUES*_1"
3709 -> Index Scan using t1_i1 on t1
3710 Index Cond: (c1 = t2.c1)
3714 ---- No. L-3-1 leading the order of table joins
3716 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3718 ------------------------------------------
3720 Merge Cond: (t1.c1 = t2.c1)
3722 Merge Cond: (t1.c1 = t3.c1)
3723 -> Index Scan using t1_i1 on t1
3724 -> Index Scan using t3_i1 on t3
3731 /*+Leading(t3 t1 t2)*/
3732 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3741 ------------------------------------------
3743 Merge Cond: (t1.c1 = t2.c1)
3745 Merge Cond: (t1.c1 = t3.c1)
3746 -> Index Scan using t1_i1 on t1
3747 -> Index Scan using t3_i1 on t3
3754 /*+Leading(t1 t2 t3)*/
3755 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3764 ------------------------------------------
3767 Merge Cond: (t1.c1 = t2.c1)
3768 -> Index Scan using t1_i1 on t1
3772 -> Index Scan using t3_i1 on t3
3773 Index Cond: (c1 = t1.c1)
3777 ---- No. L-3-2 GUC parameter to disable hints
3779 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3781 ------------------------------------------
3783 Merge Cond: (t1.c1 = t2.c1)
3785 Merge Cond: (t1.c1 = t3.c1)
3786 -> Index Scan using t1_i1 on t1
3787 -> Index Scan using t3_i1 on t3
3794 Set geqo_threshold = 3;
3796 /*+Leading(t1 t2 t3)*/
3797 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3806 ------------------------------------------
3808 Merge Cond: (t1.c1 = t2.c1)
3810 Merge Cond: (t1.c1 = t3.c1)
3811 -> Index Scan using t1_i1 on t1
3812 -> Index Scan using t3_i1 on t3
3818 Reset geqo_threshold;
3820 Set geqo_threshold = 4;
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)
3844 Reset geqo_threshold;
3846 Set from_collapse_limit = 2;
3847 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3849 -----------------------------------------------------
3851 Hash Cond: (t1.c1 = v2t1.c1)
3855 Merge Cond: (v2t1.c1 = v2t2.c1)
3856 -> Index Scan using t1_i1 on t1 v2t1
3859 -> Seq Scan on t2 v2t2
3862 /*+Leading(t1 v2t1 v2t2)*/
3863 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3866 Leading(t1 v2t1 v2t2)
3872 -----------------------------------------------------
3874 Hash Cond: (t1.c1 = v2t1.c1)
3878 Merge Cond: (v2t1.c1 = v2t2.c1)
3879 -> Index Scan using t1_i1 on t1 v2t1
3882 -> Seq Scan on t2 v2t2
3885 Reset from_collapse_limit;
3887 Set from_collapse_limit = 3;
3888 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3890 -----------------------------------------------
3892 Merge Cond: (v2t1.c1 = v2t2.c1)
3894 Merge Cond: (t1.c1 = v2t1.c1)
3895 -> Index Scan using t1_i1 on t1
3896 -> Index Scan using t1_i1 on t1 v2t1
3899 -> Seq Scan on t2 v2t2
3902 /*+Leading(v2t1 v2t2 t1)*/
3903 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3906 Leading(v2t1 v2t2 t1)
3912 -----------------------------------------------------
3914 Hash Cond: (t1.c1 = v2t1.c1)
3918 Merge Cond: (v2t1.c1 = v2t2.c1)
3919 -> Index Scan using t1_i1 on t1 v2t1
3922 -> Seq Scan on t2 v2t2
3925 Reset from_collapse_limit;
3927 Set join_collapse_limit = 2;
3928 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3929 JOIN s1.t2 ON (t3.c1 = t2.c1)
3930 JOIN s1.t1 ON (t1.c1 = t3.c1);
3932 ------------------------------------------
3934 Hash Cond: (t1.c1 = t3.c1)
3938 Hash Cond: (t3.c1 = t2.c1)
3944 /*+Leading(t1 t2 t3)*/
3945 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3946 JOIN s1.t2 ON (t3.c1 = t2.c1)
3947 JOIN s1.t1 ON (t1.c1 = t3.c1);
3956 ------------------------------------------
3958 Hash Cond: (t1.c1 = t3.c1)
3962 Hash Cond: (t3.c1 = t2.c1)
3968 Reset join_collapse_limit;
3970 Set join_collapse_limit = 3;
3971 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3972 JOIN s1.t2 ON (t3.c1 = t2.c1)
3973 JOIN s1.t1 ON (t1.c1 = t3.c1);
3975 ------------------------------------------
3977 Join Filter: (t2.c1 = t3.c1)
3979 Merge Cond: (t1.c1 = t2.c1)
3980 -> Index Scan using t1_i1 on t1
3984 -> Index Scan using t3_i1 on t3
3985 Index Cond: (c1 = t1.c1)
3988 /*+Leading(t1 t2 t3)*/
3989 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3990 JOIN s1.t2 ON (t3.c1 = t2.c1)
3991 JOIN s1.t1 ON (t1.c1 = t3.c1);
4000 ------------------------------------------
4002 Join Filter: (t2.c1 = t3.c1)
4004 Merge Cond: (t1.c1 = t2.c1)
4005 -> Index Scan using t1_i1 on t1
4009 -> Index Scan using t3_i1 on t3
4010 Index Cond: (c1 = t1.c1)
4013 Reset join_collapse_limit;
4015 ---- No. L-3-3 join between parents or between children
4018 /*+Leading(t1 t2 t3)*/
4019 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4020 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4021 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4030 -------------------------------------------------
4032 Hash Cond: (t1.c1 = t3.c1)
4034 Hash Cond: (t1.c1 = t2.c1)
4036 -> Seq Scan on p2c1 t1
4037 -> Seq Scan on p2c1c1 t1_1
4038 -> Seq Scan on p2c1c2 t1_2
4041 -> Seq Scan on p2c2 t2
4042 -> Seq Scan on p2c2c1 t2_1
4043 -> Seq Scan on p2c2c2 t2_2
4046 -> Seq Scan on p2c3 t3
4047 -> Seq Scan on p2c3c1 t3_1
4048 -> Seq Scan on p2c3c2 t3_2
4052 /*+Leading(p2c1c1 p2c2c1 p2c3c1)*/
4053 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4054 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4055 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4059 Leading(p2c1c1 p2c2c1 p2c3c1)
4064 -------------------------------------------------
4066 Hash Cond: (t1.c1 = t3.c1)
4068 Hash Cond: (t1.c1 = t2.c1)
4070 -> Seq Scan on p2c1 t1
4071 -> Seq Scan on p2c1c1 t1_1
4072 -> Seq Scan on p2c1c2 t1_2
4075 -> Seq Scan on p2c2 t2
4076 -> Seq Scan on p2c2c1 t2_1
4077 -> Seq Scan on p2c2c2 t2_2
4080 -> Seq Scan on p2c3 t3
4081 -> Seq Scan on p2c3c1 t3_1
4082 -> Seq Scan on p2c3c2 t3_2
4086 ---- No. L-3-4 conflict leading hint
4089 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4090 JOIN s1.t2 ON (t1.c1 = t2.c1)
4091 JOIN s1.t3 ON (t1.c1 = t3.c1);
4093 ------------------------------------------
4095 Merge Cond: (t1.c1 = t2.c1)
4097 Merge Cond: (t1.c1 = t3.c1)
4098 -> Index Scan using t1_i1 on t1
4099 -> Index Scan using t3_i1 on t3
4105 /*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4106 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4107 JOIN s1.t2 ON (t1.c1 = t2.c1)
4108 JOIN s1.t3 ON (t1.c1 = t3.c1);
4109 INFO: pg_hint_plan: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4110 DETAIL: Conflict leading hint.
4120 ------------------------------------------
4123 Merge Cond: (t1.c1 = t2.c1)
4124 -> Index Scan using t1_i1 on t1
4128 -> Index Scan using t3_i1 on t3
4129 Index Cond: (c1 = t1.c1)
4133 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4134 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4135 JOIN s1.t2 ON (t1.c1 = t2.c1)
4136 JOIN s1.t3 ON (t1.c1 = t3.c1);
4137 INFO: pg_hint_plan: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
4138 DETAIL: Conflict leading hint.
4139 INFO: pg_hint_plan: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4140 DETAIL: Conflict leading hint.
4151 ------------------------------------------
4154 Merge Cond: (t1.c1 = t2.c1)
4155 -> Index Scan using t1_i1 on t1
4159 -> Index Scan using t3_i1 on t3
4160 Index Cond: (c1 = t1.c1)
4164 /*+Leading(t2 t3 t1)Leading()*/
4165 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4166 JOIN s1.t2 ON (t1.c1 = t2.c1)
4167 JOIN s1.t3 ON (t1.c1 = t3.c1);
4168 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4169 DETAIL: Leading hint requires at least two relations.
4179 ------------------------------------------
4181 Merge Cond: (t1.c1 = t2.c1)
4182 -> Index Scan using t1_i1 on t1
4186 Hash Cond: (t3.c1 = t2.c1)
4193 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
4194 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4195 JOIN s1.t2 ON (t1.c1 = t2.c1)
4196 JOIN s1.t3 ON (t1.c1 = t3.c1);
4197 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4198 DETAIL: Leading hint requires at least two relations.
4199 INFO: pg_hint_plan: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
4200 DETAIL: Conflict leading hint.
4211 ------------------------------------------
4213 Merge Cond: (t1.c1 = t2.c1)
4214 -> Index Scan using t1_i1 on t1
4218 Hash Cond: (t3.c1 = t2.c1)
4225 ---- No. L-3-5 hint state output
4229 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4230 JOIN s1.t2 ON (t1.c1 = t2.c1)
4231 JOIN s1.t3 ON (t1.c1 = t3.c1);
4232 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4233 DETAIL: Leading hint requires at least two relations.
4242 ------------------------------------------
4244 Merge Cond: (t1.c1 = t2.c1)
4246 Merge Cond: (t1.c1 = t3.c1)
4247 -> Index Scan using t1_i1 on t1
4248 -> Index Scan using t3_i1 on t3
4256 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4257 JOIN s1.t2 ON (t1.c1 = t2.c1)
4258 JOIN s1.t3 ON (t1.c1 = t3.c1);
4259 INFO: pg_hint_plan: hint syntax error at or near "Leading(t1)"
4260 DETAIL: Leading hint requires at least two relations.
4269 ------------------------------------------
4271 Merge Cond: (t1.c1 = t2.c1)
4273 Merge Cond: (t1.c1 = t3.c1)
4274 -> Index Scan using t1_i1 on t1
4275 -> Index Scan using t3_i1 on t3
4283 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4284 JOIN s1.t2 ON (t1.c1 = t2.c1)
4285 JOIN s1.t3 ON (t1.c1 = t3.c1);
4294 ------------------------------------------
4297 Merge Cond: (t1.c1 = t2.c1)
4298 -> Index Scan using t1_i1 on t1
4302 -> Index Scan using t3_i1 on t3
4303 Index Cond: (c1 = t1.c1)
4307 /*+Leading(t1 t2 t3)*/
4308 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4309 JOIN s1.t2 ON (t1.c1 = t2.c1)
4310 JOIN s1.t3 ON (t1.c1 = t3.c1);
4319 ------------------------------------------
4322 Merge Cond: (t1.c1 = t2.c1)
4323 -> Index Scan using t1_i1 on t1
4327 -> Index Scan using t3_i1 on t3
4328 Index Cond: (c1 = t1.c1)
4332 ---- No. L-3-6 specified Inner/Outer side
4336 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;
4337 INFO: pg_hint_plan: hint syntax error at or near "Leading((t2))"
4338 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4347 ------------------------------------------------
4350 Merge Cond: (t1.c1 = t2.c1)
4352 Merge Cond: (t1.c1 = t3.c1)
4353 -> Index Scan using t1_i1 on t1
4354 -> Index Scan using t3_i1 on t3
4358 -> Index Scan using t4_i1 on t4
4359 Index Cond: (c1 = t1.c1)
4363 /*+Leading((t2 t3))*/
4364 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;
4373 ------------------------------------------------
4375 Join Filter: (t1.c1 = t4.c1)
4377 Join Filter: (t2.c1 = t1.c1)
4379 -> Index Scan using t2_i1 on t2
4380 -> Index Scan using t3_i1 on t3
4381 Index Cond: (c1 = t2.c1)
4382 -> Index Scan using t1_i1 on t1
4383 Index Cond: (c1 = t3.c1)
4384 -> Index Scan using t4_i1 on t4
4385 Index Cond: (c1 = t3.c1)
4389 /*+Leading((t2 t3 t4))*/
4390 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;
4391 INFO: pg_hint_plan: hint syntax error at or near "Leading((t2 t3 t4))"
4392 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4401 ------------------------------------------------
4404 Merge Cond: (t1.c1 = t2.c1)
4406 Merge Cond: (t1.c1 = t3.c1)
4407 -> Index Scan using t1_i1 on t1
4408 -> Index Scan using t3_i1 on t3
4412 -> Index Scan using t4_i1 on t4
4413 Index Cond: (c1 = t1.c1)
4417 /*+Leading(((t1 t2) (t3 t4)))*/
4418 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;
4421 Leading(((t1 t2) (t3 t4)))
4427 ------------------------------------------
4429 Hash Cond: (t1.c1 = t3.c1)
4431 Merge Cond: (t1.c1 = t2.c1)
4432 -> Index Scan using t1_i1 on t1
4438 Hash Cond: (t3.c1 = t4.c1)
4445 /*+Leading((((t1 t3) t4) t2)))*/
4446 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;
4447 INFO: pg_hint_plan: hint syntax error at or near ")"
4448 DETAIL: Unrecognized hint keyword ")".
4451 Leading((((t1 t3) t4) t2))
4457 ------------------------------------------------
4459 Merge Cond: (t1.c1 = t2.c1)
4461 Merge Cond: (t1.c1 = t4.c1)
4463 Merge Cond: (t1.c1 = t3.c1)
4464 -> Index Scan using t1_i1 on t1
4465 -> Index Scan using t3_i1 on t3
4466 -> Index Scan using t4_i1 on t4
4473 /*+Leading((t1 (t3 (t4 t2))))*/
4474 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;
4477 Leading((t1 (t3 (t4 t2))))
4483 ------------------------------------------------------
4485 Merge Cond: (t1.c1 = t2.c1)
4486 -> Index Scan using t1_i1 on t1
4490 Hash Cond: (t3.c1 = t2.c1)
4494 Hash Cond: (t4.c1 = t2.c1)