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 ------------------------------------------------
11 Join Filter: (t1.c1 = t4.c1)
13 Merge Cond: (t1.c1 = t2.c1)
15 Merge Cond: (t1.c1 = t3.c1)
16 -> Index Scan using t1_i1 on t1
17 -> Index Scan using t3_i1 on t3
21 -> Index Scan using t4_i1 on t4
22 Index Cond: (c1 = t3.c1)
26 ---- No. L-1-1 specified pattern of the object name
29 /*+Leading(t4 t2 t3 t1)*/
30 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;
39 ------------------------------------------------
41 Merge Cond: (t1.c1 = t2.c1)
42 -> Index Scan using t1_i1 on t1
46 Join Filter: (t2.c1 = t3.c1)
48 Hash Cond: (t4.c1 = t2.c1)
52 -> Index Scan using t3_i1 on t3
53 Index Cond: (c1 = t4.c1)
57 /*+Leading(t4 t2 t3 t1)*/
58 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;
67 ----------------------------------------------------
69 Join Filter: (t_1.c1 = t_4.c1)
71 Merge Cond: (t_1.c1 = t_2.c1)
73 Merge Cond: (t_1.c1 = t_3.c1)
74 -> Index Scan using t1_i1 on t1 t_1
75 -> Index Scan using t3_i1 on t3 t_3
79 -> Index Scan using t4_i1 on t4 t_4
80 Index Cond: (c1 = t_3.c1)
84 /*+Leading(t_4 t_2 t_3 t_1)*/
85 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;
88 Leading(t_4 t_2 t_3 t_1)
94 ----------------------------------------------------
96 Merge Cond: (t_1.c1 = t_2.c1)
97 -> Index Scan using t1_i1 on t1 t_1
101 Join Filter: (t_2.c1 = t_3.c1)
103 Hash Cond: (t_4.c1 = t_2.c1)
104 -> Seq Scan on t4 t_4
106 -> Seq Scan on t2 t_2
107 -> Index Scan using t3_i1 on t3 t_3
108 Index Cond: (c1 = t_4.c1)
112 ---- No. L-1-2 specified schema name in the hint option
115 /*+Leading(t4 t2 t3 t1)*/
116 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;
125 ------------------------------------------------
127 Merge Cond: (t1.c1 = t2.c1)
128 -> Index Scan using t1_i1 on t1
132 Join Filter: (t2.c1 = t3.c1)
134 Hash Cond: (t4.c1 = t2.c1)
138 -> Index Scan using t3_i1 on t3
139 Index Cond: (c1 = t4.c1)
143 /*+Leading(s1.t4 s1.t2 s1.t3 s1.t1)*/
144 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;
148 Leading(s1.t4 s1.t2 s1.t3 s1.t1)
153 ------------------------------------------------
155 Join Filter: (t1.c1 = t4.c1)
157 Merge Cond: (t1.c1 = t2.c1)
159 Merge Cond: (t1.c1 = t3.c1)
160 -> Index Scan using t1_i1 on t1
161 -> Index Scan using t3_i1 on t3
165 -> Index Scan using t4_i1 on t4
166 Index Cond: (c1 = t3.c1)
170 ---- No. L-1-3 table doesn't exist in the hint option
173 /*+Leading(t4 t2 t3 t1)*/
174 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;
183 ------------------------------------------------
185 Merge Cond: (t1.c1 = t2.c1)
186 -> Index Scan using t1_i1 on t1
190 Join Filter: (t2.c1 = t3.c1)
192 Hash Cond: (t4.c1 = t2.c1)
196 -> Index Scan using t3_i1 on t3
197 Index Cond: (c1 = t4.c1)
201 /*+Leading(t5 t2 t3 t1)*/
202 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;
211 ------------------------------------------------
213 Join Filter: (t1.c1 = t4.c1)
215 Merge Cond: (t1.c1 = t2.c1)
217 Merge Cond: (t1.c1 = t3.c1)
218 -> Index Scan using t1_i1 on t1
219 -> Index Scan using t3_i1 on t3
223 -> Index Scan using t4_i1 on t4
224 Index Cond: (c1 = t3.c1)
228 ---- No. L-1-4 conflict table name
231 /*+Leading(t4 t2 t3 t1)*/
232 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;
241 ------------------------------------------------
243 Merge Cond: (t1.c1 = t2.c1)
244 -> Index Scan using t1_i1 on t1
248 Join Filter: (t2.c1 = t3.c1)
250 Hash Cond: (t4.c1 = t2.c1)
254 -> Index Scan using t3_i1 on t3
255 Index Cond: (c1 = t4.c1)
259 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;
261 ------------------------------------------------
263 Merge Cond: (t1.c1 = t1_1.c1)
265 Merge Cond: (t1.c1 = t2.c1)
267 Merge Cond: (t1.c1 = t3.c1)
268 -> Index Scan using t1_i1 on t1
269 -> Index Scan using t3_i1 on t3
275 -> Seq Scan on t1 t1_1
278 /*+Leading(t1 t2 t3 t1)*/
279 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;
280 INFO: pg_hint_plan: hint syntax error at or near "Leading(t1 t2 t3 t1)"
281 DETAIL: Relation name "t1" is ambiguous.
290 ------------------------------------------------
292 Merge Cond: (t1.c1 = t1_1.c1)
294 Merge Cond: (t1.c1 = t2.c1)
296 Merge Cond: (t1.c1 = t3.c1)
297 -> Index Scan using t1_i1 on t1
298 -> Index Scan using t3_i1 on t3
304 -> Seq Scan on t1 t1_1
307 /*+Leading(s1.t1 t2 t3 s2.t1)*/
308 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;
312 Leading(s1.t1 t2 t3 s2.t1)
317 ------------------------------------------------
319 Merge Cond: (t1.c1 = t1_1.c1)
321 Merge Cond: (t1.c1 = t2.c1)
323 Merge Cond: (t1.c1 = t3.c1)
324 -> Index Scan using t1_i1 on t1
325 -> Index Scan using t3_i1 on t3
331 -> Seq Scan on t1 t1_1
334 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;
336 ------------------------------------------------
338 Merge Cond: (t1.c1 = s2t1.c1)
340 Merge Cond: (t1.c1 = t2.c1)
342 Merge Cond: (t1.c1 = t3.c1)
343 -> Index Scan using t1_i1 on t1
344 -> Index Scan using t3_i1 on t3
350 -> Seq Scan on t1 s2t1
353 /*+Leading(s2t1 t1 t3 t2)*/
354 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;
357 Leading(s2t1 t1 t3 t2)
363 ------------------------------------------------
365 Merge Cond: (t1.c1 = t2.c1)
368 Merge Cond: (t1.c1 = s2t1.c1)
369 -> Index Scan using t1_i1 on t1
372 -> Seq Scan on t1 s2t1
373 -> Index Scan using t3_i1 on t3
374 Index Cond: (c1 = t1.c1)
381 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;
383 ------------------------------------------------------------------------
385 Join Filter: (t1.c1 = t4.c1)
386 InitPlan 1 (returns $1)
389 Join Filter: (t1_1.c1 = t4_1.c1)
391 Merge Cond: (t1_1.c1 = t2_1.c1)
393 Merge Cond: (t1_1.c1 = t3_1.c1)
394 -> Index Only Scan using t1_i1 on t1 t1_1
395 -> Index Only Scan using t3_i1 on t3 t3_1
398 -> Seq Scan on t2 t2_1
399 -> Index Only Scan using t4_i1 on t4 t4_1
400 Index Cond: (c1 = t3_1.c1)
402 Merge Cond: (t1.c1 = t2.c1)
404 Merge Cond: (t1.c1 = t3.c1)
405 -> Index Scan using t1_i1 on t1
406 -> Index Scan using t3_i1 on t3
410 -> Index Scan using t4_i1 on t4
411 Index Cond: (c1 = t3.c1)
414 /*+Leading(t4 t2 t3 t1)*/
415 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;
424 ------------------------------------------------------------------------
426 Merge Cond: (t1.c1 = t2.c1)
427 InitPlan 1 (returns $1)
430 Merge Cond: (t1_1.c1 = t2_1.c1)
431 -> Index Only Scan using t1_i1 on t1 t1_1
435 Join Filter: (t2_1.c1 = t3_1.c1)
437 Hash Cond: (t4_1.c1 = t2_1.c1)
438 -> Seq Scan on t4 t4_1
440 -> Seq Scan on t2 t2_1
441 -> Index Only Scan using t3_i1 on t3 t3_1
442 Index Cond: (c1 = t4_1.c1)
443 -> Index Scan using t1_i1 on t1
447 Join Filter: (t2.c1 = t3.c1)
449 Hash Cond: (t4.c1 = t2.c1)
453 -> Index Scan using t3_i1 on t3
454 Index Cond: (c1 = t4.c1)
457 /*+Leading(st1 st2 st3 st4)Leading(t4 t2 t3 t1)*/
458 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;
461 Leading(st1 st2 st3 st4)
468 --------------------------------------------------------------------------------------------
470 Merge Cond: (t1.c1 = t2.c1)
471 -> Index Scan using t1_i1 on t1
475 Join Filter: (t2.c1 = t3.c1)
477 Hash Cond: (t4.c1 = t2.c1)
481 -> Index Scan using t3_i1 on t3
482 Index Cond: (c1 = t4.c1)
486 One-Time Filter: ((t1.c1 = t2.c1) AND (t1.c1 = t3.c1) AND (t1.c1 = t4.c1))
490 -> Seq Scan on t1 st1
492 -> Seq Scan on t2 st2
494 -> Seq Scan on t3 st3
496 -> Seq Scan on t4 st4
500 ---- No. L-1-5 conflict table name
503 /*+Leading(t4 t2 t3 t1)*/
504 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;
513 ------------------------------------------------
515 Merge Cond: (t1.c1 = t2.c1)
516 -> Index Scan using t1_i1 on t1
520 Join Filter: (t2.c1 = t3.c1)
522 Hash Cond: (t4.c1 = t2.c1)
526 -> Index Scan using t3_i1 on t3
527 Index Cond: (c1 = t4.c1)
531 /*+Leading(t4 t2 t3 t1 t4)*/
532 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;
533 INFO: pg_hint_plan: hint syntax error at or near "Leading(t4 t2 t3 t1 t4)"
534 DETAIL: Relation name "t4" is duplicated.
540 Leading(t4 t2 t3 t1 t4)
543 ------------------------------------------------
545 Join Filter: (t1.c1 = t4.c1)
547 Merge Cond: (t1.c1 = t2.c1)
549 Merge Cond: (t1.c1 = t3.c1)
550 -> Index Scan using t1_i1 on t1
551 -> Index Scan using t3_i1 on t3
555 -> Index Scan using t4_i1 on t4
556 Index Cond: (c1 = t3.c1)
559 /*+Leading(t4 t2 t3 t4)*/
560 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;
561 INFO: pg_hint_plan: hint syntax error at or near "Leading(t4 t2 t3 t4)"
562 DETAIL: Relation name "t4" is duplicated.
571 ------------------------------------------------
573 Join Filter: (t1.c1 = t4.c1)
575 Merge Cond: (t1.c1 = t2.c1)
577 Merge Cond: (t1.c1 = t3.c1)
578 -> Index Scan using t1_i1 on t1
579 -> Index Scan using t3_i1 on t3
583 -> Index Scan using t4_i1 on t4
584 Index Cond: (c1 = t3.c1)
588 /*+Leading(t4 t2 t3 t1 t4 t2 t3 t1)*/
589 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;
590 INFO: pg_hint_plan: hint syntax error at or near "Leading(t4 t2 t3 t1 t4 t2 t3 t1)"
591 DETAIL: Relation name "t4" is duplicated.
597 Leading(t4 t2 t3 t1 t4 t2 t3 t1)
600 ------------------------------------------------
602 Join Filter: (t1.c1 = t4.c1)
604 Merge Cond: (t1.c1 = t2.c1)
606 Merge Cond: (t1.c1 = t3.c1)
607 -> Index Scan using t1_i1 on t1
608 -> Index Scan using t3_i1 on t3
612 -> Index Scan using t4_i1 on t4
613 Index Cond: (c1 = t3.c1)
616 /*+Leading(t4 t2 t2 t4)*/
617 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;
618 INFO: pg_hint_plan: hint syntax error at or near "Leading(t4 t2 t2 t4)"
619 DETAIL: Relation name "t2" is duplicated.
628 ------------------------------------------------
630 Join Filter: (t1.c1 = t4.c1)
632 Merge Cond: (t1.c1 = t2.c1)
634 Merge Cond: (t1.c1 = t3.c1)
635 -> Index Scan using t1_i1 on t1
636 -> Index Scan using t3_i1 on t3
640 -> Index Scan using t4_i1 on t4
641 Index Cond: (c1 = t3.c1)
645 ---- No. L-1-6 object type for the hint
648 /*+Leading(t4 t2 t3 t1)*/
649 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;
658 ------------------------------------------------
660 Merge Cond: (t1.c1 = t2.c1)
661 -> Index Scan using t1_i1 on t1
665 Join Filter: (t2.c1 = t3.c1)
667 Hash Cond: (t4.c1 = t2.c1)
671 -> Index Scan using t3_i1 on t3
672 Index Cond: (c1 = t4.c1)
676 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;
678 -----------------------------------------------------
680 Hash Cond: (t1.c1 = t4.c1)
682 Hash Cond: (t1.c1 = t3.c1)
684 Hash Cond: (t1.c1 = t2.c1)
687 -> Seq Scan on p1c1 t1_1
688 -> Seq Scan on p1c2 t1_2
689 -> Seq Scan on p1c3 t1_3
693 -> Seq Scan on p1c1 t2_1
694 -> Seq Scan on p1c2 t2_2
695 -> Seq Scan on p1c3 t2_3
699 -> Seq Scan on p1c1 t3_1
700 -> Seq Scan on p1c2 t3_2
701 -> Seq Scan on p1c3 t3_3
705 -> Seq Scan on p1c1 t4_1
706 -> Seq Scan on p1c2 t4_2
707 -> Seq Scan on p1c3 t4_3
710 /*+Leading(t4 t3 t2 t1)*/
711 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;
720 -----------------------------------------------------
722 Hash Cond: (t2.c1 = t1.c1)
724 Hash Cond: (t3.c1 = t2.c1)
726 Hash Cond: (t3.c1 = t4.c1)
729 -> Seq Scan on p1c1 t3_1
730 -> Seq Scan on p1c2 t3_2
731 -> Seq Scan on p1c3 t3_3
735 -> Seq Scan on p1c1 t4_1
736 -> Seq Scan on p1c2 t4_2
737 -> Seq Scan on p1c3 t4_3
741 -> Seq Scan on p1c1 t2_1
742 -> Seq Scan on p1c2 t2_2
743 -> Seq Scan on p1c3 t2_3
747 -> Seq Scan on p1c1 t1_1
748 -> Seq Scan on p1c2 t1_2
749 -> Seq Scan on p1c3 t1_3
753 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;
755 --------------------------------------------
757 Hash Cond: (t1.c1 = t4.c1)
759 Hash Cond: (t1.c1 = t3.c1)
761 Hash Cond: (t1.c1 = t2.c1)
762 -> Seq Scan on ul1 t1
764 -> Seq Scan on ul1 t2
766 -> Seq Scan on ul1 t3
768 -> Seq Scan on ul1 t4
771 /*+Leading(t4 t3 t2 t1)*/
772 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;
781 --------------------------------------------
783 Hash Cond: (t2.c1 = t1.c1)
785 Hash Cond: (t3.c1 = t2.c1)
787 Hash Cond: (t3.c1 = t4.c1)
788 -> Seq Scan on ul1 t3
790 -> Seq Scan on ul1 t4
792 -> Seq Scan on ul1 t2
794 -> Seq Scan on ul1 t1
798 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
799 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;
801 --------------------------------------------
803 Hash Cond: (t1.c1 = t4.c1)
805 Hash Cond: (t1.c1 = t3.c1)
807 Hash Cond: (t1.c1 = t2.c1)
808 -> Seq Scan on tm1 t1
810 -> Seq Scan on tm1 t2
812 -> Seq Scan on tm1 t3
814 -> Seq Scan on tm1 t4
817 /*+Leading(t4 t3 t2 t1)*/
818 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;
827 --------------------------------------------
829 Hash Cond: (t2.c1 = t1.c1)
831 Hash Cond: (t3.c1 = t2.c1)
833 Hash Cond: (t3.c1 = t4.c1)
834 -> Seq Scan on tm1 t3
836 -> Seq Scan on tm1 t4
838 -> Seq Scan on tm1 t2
840 -> Seq Scan on tm1 t1
844 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;
846 -------------------------------------------------
848 Hash Cond: (t1.oid = t4.oid)
850 Hash Cond: (t1.oid = t3.oid)
852 Hash Cond: (t1.oid = t2.oid)
853 -> Seq Scan on pg_class t1
855 -> Seq Scan on pg_class t2
857 -> Seq Scan on pg_class t3
859 -> Seq Scan on pg_class t4
862 /*+Leading(t4 t3 t2 t1)*/
863 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;
872 -------------------------------------------------
874 Hash Cond: (t2.oid = t1.oid)
876 Hash Cond: (t3.oid = t2.oid)
878 Hash Cond: (t3.oid = t4.oid)
879 -> Seq Scan on pg_class t3
881 -> Seq Scan on pg_class t4
883 -> Seq Scan on pg_class t2
885 -> Seq Scan on pg_class t1
891 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;
893 --------------------------------------------
895 Join Filter: (t1.c1 = t4.c1)
897 Join Filter: (t1.c1 = t3.c1)
899 Join Filter: (t1.c1 = t2.c1)
900 -> Function Scan on f1 t1
901 -> Function Scan on f1 t2
902 -> Function Scan on f1 t3
903 -> Function Scan on f1 t4
906 /*+Leading(t4 t3 t2 t1)*/
907 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;
916 --------------------------------------------
918 Join Filter: (t2.c1 = t1.c1)
920 Join Filter: (t3.c1 = t2.c1)
922 Join Filter: (t3.c1 = t4.c1)
923 -> Function Scan on f1 t3
924 -> Function Scan on f1 t4
925 -> Function Scan on f1 t2
926 -> Function Scan on f1 t1
930 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;
932 -------------------------------------------------------
934 Join Filter: ("*VALUES*".column1 = t4.c1)
936 Join Filter: ("*VALUES*".column1 = t3.c1)
938 Hash Cond: (t2.c1 = "*VALUES*".column1)
941 -> Values Scan on "*VALUES*"
942 -> Index Scan using t3_i1 on t3
943 Index Cond: (c1 = t2.c1)
944 -> Index Scan using t4_i1 on t4
945 Index Cond: (c1 = t3.c1)
948 /*+Leading(t4 t3 t2 t1)*/
949 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;
958 -------------------------------------------------------
960 Join Filter: ("*VALUES*".column1 = t4.c1)
962 Join Filter: ("*VALUES*".column1 = t3.c1)
964 Hash Cond: (t2.c1 = "*VALUES*".column1)
967 -> Values Scan on "*VALUES*"
968 -> Index Scan using t3_i1 on t3
969 Index Cond: (c1 = t2.c1)
970 -> Index Scan using t4_i1 on t4
971 Index Cond: (c1 = t3.c1)
975 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;
977 ----------------------------------------------------
979 Merge Cond: (ct1.c1 = ct3.c1)
982 Hash Cond: (st1.c1 = st4.c1)
984 Hash Cond: (st1.c1 = st3.c1)
986 Hash Cond: (st1.c1 = st2.c1)
987 -> Seq Scan on t1 st1
989 -> Seq Scan on t1 st2
991 -> Seq Scan on t1 st3
993 -> Seq Scan on t1 st4
995 Merge Cond: (ct1.c1 = ct2.c1)
998 -> CTE Scan on c1 ct1
1001 -> CTE Scan on c1 ct2
1004 Merge Cond: (ct3.c1 = ct4.c1)
1007 -> CTE Scan on c1 ct3
1010 -> CTE Scan on c1 ct4
1013 /*+Leading(ct4 ct3 ct2 ct1)Leading(st4 st3 st2 st1)*/
1014 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;
1017 Leading(ct4 ct3 ct2 ct1)
1018 Leading(st4 st3 st2 st1)
1024 ---------------------------------------------------------
1026 Merge Cond: (ct1.c1 = ct2.c1)
1029 Hash Cond: (st2.c1 = st1.c1)
1031 Hash Cond: (st3.c1 = st2.c1)
1033 Hash Cond: (st3.c1 = st4.c1)
1034 -> Seq Scan on t1 st3
1036 -> Seq Scan on t1 st4
1038 -> Seq Scan on t1 st2
1040 -> Seq Scan on t1 st1
1043 -> CTE Scan on c1 ct1
1046 Merge Cond: (ct2.c1 = ct3.c1)
1049 -> CTE Scan on c1 ct2
1052 Merge Cond: (ct3.c1 = ct4.c1)
1055 -> CTE Scan on c1 ct3
1058 -> CTE Scan on c1 ct4
1062 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2, s1.v1 t3, s1.v1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
1064 ------------------------------------------------
1066 Hash Cond: (v1t1.c1 = v1t1_3.c1)
1068 Hash Cond: (v1t1.c1 = v1t1_2.c1)
1070 Hash Cond: (v1t1.c1 = v1t1_1.c1)
1071 -> Seq Scan on t1 v1t1
1073 -> Seq Scan on t1 v1t1_1
1075 -> Seq Scan on t1 v1t1_2
1077 -> Seq Scan on t1 v1t1_3
1080 /*+Leading(t4 t3 t2 t1)*/
1081 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;
1085 Leading(t4 t3 t2 t1)
1090 ------------------------------------------------
1092 Hash Cond: (v1t1.c1 = v1t1_3.c1)
1094 Hash Cond: (v1t1.c1 = v1t1_2.c1)
1096 Hash Cond: (v1t1.c1 = v1t1_1.c1)
1097 -> Seq Scan on t1 v1t1
1099 -> Seq Scan on t1 v1t1_1
1101 -> Seq Scan on t1 v1t1_2
1103 -> Seq Scan on t1 v1t1_3
1106 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;
1108 ---------------------------------------------
1110 Hash Cond: (v1t1.c1 = t4.c1)
1112 Hash Cond: (v1t1.c1 = v1t1_.c1)
1114 Hash Cond: (t3.c1 = v1t1.c1)
1117 -> Seq Scan on t1 v1t1
1119 -> Seq Scan on t1 v1t1_
1124 /*+Leading(t4 v1t1_ v1t1 t3)*/
1125 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;
1128 Leading(t4 v1t1_ v1t1 t3)
1134 ----------------------------------------------
1136 Hash Cond: (v1t1.c1 = t3.c1)
1138 Hash Cond: (v1t1_.c1 = v1t1.c1)
1140 Hash Cond: (t4.c1 = v1t1_.c1)
1143 -> Seq Scan on t1 v1t1_
1145 -> Seq Scan on t1 v1t1
1151 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;
1153 ------------------------------------------------
1155 Join Filter: (t1.c1 = t4.c1)
1157 Merge Cond: (t1.c1 = t2.c1)
1159 Merge Cond: (t1.c1 = t3.c1)
1160 -> Index Scan using t1_i1 on t1
1161 -> Index Scan using t3_i1 on t3
1165 -> Index Only Scan using t4_i1 on t4
1166 Index Cond: (c1 = t3.c1)
1169 /*+Leading(st4 t2 t3 t1)*/
1170 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;
1174 Leading(st4 t2 t3 t1)
1179 ------------------------------------------------
1181 Join Filter: (t1.c1 = t4.c1)
1183 Merge Cond: (t1.c1 = t2.c1)
1185 Merge Cond: (t1.c1 = t3.c1)
1186 -> Index Scan using t1_i1 on t1
1187 -> Index Scan using t3_i1 on t3
1191 -> Index Only Scan using t4_i1 on t4
1192 Index Cond: (c1 = t3.c1)
1195 /*+Leading(t4 t2 t3 t1)*/
1196 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;
1199 Leading(t4 t2 t3 t1)
1205 ------------------------------------------------
1207 Merge Cond: (t1.c1 = t2.c1)
1208 -> Index Scan using t1_i1 on t1
1212 Join Filter: (t2.c1 = t3.c1)
1214 Hash Cond: (t4.c1 = t2.c1)
1218 -> Index Scan using t3_i1 on t3
1219 Index Cond: (c1 = t4.c1)
1223 ---- No. L-2-1 some complexity query blocks
1226 EXPLAIN (COSTS false)
1227 SELECT max(bmt1.c1), (
1228 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)'
1230 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)'
1232 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)'
1235 -------------------------------------------------------------------
1237 InitPlan 1 (returns $0)
1240 Join Filter: (b1t1.c1 = b1t4.c1)
1242 Join Filter: (b1t1.c1 = b1t3.c1)
1244 Join Filter: (b1t1.c1 = b1t2.c1)
1245 -> Tid Scan on t1 b1t1
1246 TID Cond: (ctid = '(1,1)'::tid)
1247 -> Seq Scan on t2 b1t2
1248 Filter: (ctid = '(1,1)'::tid)
1249 -> Tid Scan on t3 b1t3
1250 TID Cond: (ctid = '(1,1)'::tid)
1251 -> Tid Scan on t4 b1t4
1252 TID Cond: (ctid = '(1,1)'::tid)
1253 InitPlan 2 (returns $1)
1256 Join Filter: (b2t1.c1 = b2t4.c1)
1258 Join Filter: (b2t1.c1 = b2t3.c1)
1260 Join Filter: (b2t1.c1 = b2t2.c1)
1261 -> Tid Scan on t1 b2t1
1262 TID Cond: (ctid = '(1,1)'::tid)
1263 -> Seq Scan on t2 b2t2
1264 Filter: (ctid = '(1,1)'::tid)
1265 -> Tid Scan on t3 b2t3
1266 TID Cond: (ctid = '(1,1)'::tid)
1267 -> Tid Scan on t4 b2t4
1268 TID Cond: (ctid = '(1,1)'::tid)
1270 Join Filter: (bmt1.c1 = bmt4.c1)
1272 Join Filter: (bmt1.c1 = bmt3.c1)
1274 Join Filter: (bmt1.c1 = bmt2.c1)
1275 -> Tid Scan on t1 bmt1
1276 TID Cond: (ctid = '(1,1)'::tid)
1277 -> Seq Scan on t2 bmt2
1278 Filter: (ctid = '(1,1)'::tid)
1279 -> Tid Scan on t3 bmt3
1280 TID Cond: (ctid = '(1,1)'::tid)
1281 -> Tid Scan on t4 bmt4
1282 TID Cond: (ctid = '(1,1)'::tid)
1286 Leading(bmt1 bmt2 bmt3 bmt4)
1287 Leading(b1t2 b1t3 b1t4 b1t1)
1288 Leading(b2t3 b2t4 b2t1 b2t2)
1290 EXPLAIN (COSTS false)
1291 SELECT max(bmt1.c1), (
1292 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)'
1294 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)'
1296 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)'
1300 Leading(bmt1 bmt2 bmt3 bmt4)
1301 Leading(b1t2 b1t3 b1t4 b1t1)
1302 Leading(b2t3 b2t4 b2t1 b2t2)
1308 -------------------------------------------------------------------
1310 InitPlan 1 (returns $0)
1313 Join Filter: (b1t2.c1 = b1t1.c1)
1315 Join Filter: (b1t2.c1 = b1t4.c1)
1317 Join Filter: (b1t2.c1 = b1t3.c1)
1318 -> Seq Scan on t2 b1t2
1319 Filter: (ctid = '(1,1)'::tid)
1320 -> Tid Scan on t3 b1t3
1321 TID Cond: (ctid = '(1,1)'::tid)
1322 -> Tid Scan on t4 b1t4
1323 TID Cond: (ctid = '(1,1)'::tid)
1324 -> Tid Scan on t1 b1t1
1325 TID Cond: (ctid = '(1,1)'::tid)
1326 InitPlan 2 (returns $1)
1329 Join Filter: (b2t1.c1 = b2t2.c1)
1331 Join Filter: (b2t3.c1 = b2t1.c1)
1333 Join Filter: (b2t3.c1 = b2t4.c1)
1334 -> Tid Scan on t3 b2t3
1335 TID Cond: (ctid = '(1,1)'::tid)
1336 -> Tid Scan on t4 b2t4
1337 TID Cond: (ctid = '(1,1)'::tid)
1338 -> Tid Scan on t1 b2t1
1339 TID Cond: (ctid = '(1,1)'::tid)
1340 -> Seq Scan on t2 b2t2
1341 Filter: (ctid = '(1,1)'::tid)
1343 Join Filter: (bmt1.c1 = bmt4.c1)
1345 Join Filter: (bmt1.c1 = bmt3.c1)
1347 Join Filter: (bmt1.c1 = bmt2.c1)
1348 -> Tid Scan on t1 bmt1
1349 TID Cond: (ctid = '(1,1)'::tid)
1350 -> Seq Scan on t2 bmt2
1351 Filter: (ctid = '(1,1)'::tid)
1352 -> Tid Scan on t3 bmt3
1353 TID Cond: (ctid = '(1,1)'::tid)
1354 -> Tid Scan on t4 bmt4
1355 TID Cond: (ctid = '(1,1)'::tid)
1359 EXPLAIN (COSTS false)
1360 SELECT max(bmt1.c1), (
1361 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)'
1363 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)'
1365 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)'
1367 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)'
1370 -------------------------------------------------------------------
1372 InitPlan 1 (returns $0)
1375 Join Filter: (b1t1.c1 = b1t4.c1)
1377 Join Filter: (b1t1.c1 = b1t3.c1)
1379 Join Filter: (b1t1.c1 = b1t2.c1)
1380 -> Tid Scan on t1 b1t1
1381 TID Cond: (ctid = '(1,1)'::tid)
1382 -> Seq Scan on t2 b1t2
1383 Filter: (ctid = '(1,1)'::tid)
1384 -> Tid Scan on t3 b1t3
1385 TID Cond: (ctid = '(1,1)'::tid)
1386 -> Tid Scan on t4 b1t4
1387 TID Cond: (ctid = '(1,1)'::tid)
1388 InitPlan 2 (returns $1)
1391 Join Filter: (b2t1.c1 = b2t4.c1)
1393 Join Filter: (b2t1.c1 = b2t3.c1)
1395 Join Filter: (b2t1.c1 = b2t2.c1)
1396 -> Tid Scan on t1 b2t1
1397 TID Cond: (ctid = '(1,1)'::tid)
1398 -> Seq Scan on t2 b2t2
1399 Filter: (ctid = '(1,1)'::tid)
1400 -> Tid Scan on t3 b2t3
1401 TID Cond: (ctid = '(1,1)'::tid)
1402 -> Tid Scan on t4 b2t4
1403 TID Cond: (ctid = '(1,1)'::tid)
1404 InitPlan 3 (returns $2)
1407 Join Filter: (b3t1.c1 = b3t4.c1)
1409 Join Filter: (b3t1.c1 = b3t3.c1)
1411 Join Filter: (b3t1.c1 = b3t2.c1)
1412 -> Tid Scan on t1 b3t1
1413 TID Cond: (ctid = '(1,1)'::tid)
1414 -> Seq Scan on t2 b3t2
1415 Filter: (ctid = '(1,1)'::tid)
1416 -> Tid Scan on t3 b3t3
1417 TID Cond: (ctid = '(1,1)'::tid)
1418 -> Tid Scan on t4 b3t4
1419 TID Cond: (ctid = '(1,1)'::tid)
1421 Join Filter: (bmt1.c1 = bmt4.c1)
1423 Join Filter: (bmt1.c1 = bmt3.c1)
1425 Join Filter: (bmt1.c1 = bmt2.c1)
1426 -> Tid Scan on t1 bmt1
1427 TID Cond: (ctid = '(1,1)'::tid)
1428 -> Seq Scan on t2 bmt2
1429 Filter: (ctid = '(1,1)'::tid)
1430 -> Tid Scan on t3 bmt3
1431 TID Cond: (ctid = '(1,1)'::tid)
1432 -> Tid Scan on t4 bmt4
1433 TID Cond: (ctid = '(1,1)'::tid)
1437 Leading(bmt1 bmt2 bmt3 bmt4)
1438 Leading(b1t2 b1t3 b1t4 b1t1)
1439 Leading(b2t3 b2t4 b2t1 b2t2)
1440 Leading(b3t4 b3t1 b3t2 b3t3)
1442 EXPLAIN (COSTS false)
1443 SELECT max(bmt1.c1), (
1444 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)'
1446 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)'
1448 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)'
1450 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)'
1454 Leading(bmt1 bmt2 bmt3 bmt4)
1455 Leading(b1t2 b1t3 b1t4 b1t1)
1456 Leading(b2t3 b2t4 b2t1 b2t2)
1457 Leading(b3t4 b3t1 b3t2 b3t3)
1463 -------------------------------------------------------------------
1465 InitPlan 1 (returns $0)
1468 Join Filter: (b1t2.c1 = b1t1.c1)
1470 Join Filter: (b1t2.c1 = b1t4.c1)
1472 Join Filter: (b1t2.c1 = b1t3.c1)
1473 -> Seq Scan on t2 b1t2
1474 Filter: (ctid = '(1,1)'::tid)
1475 -> Tid Scan on t3 b1t3
1476 TID Cond: (ctid = '(1,1)'::tid)
1477 -> Tid Scan on t4 b1t4
1478 TID Cond: (ctid = '(1,1)'::tid)
1479 -> Tid Scan on t1 b1t1
1480 TID Cond: (ctid = '(1,1)'::tid)
1481 InitPlan 2 (returns $1)
1484 Join Filter: (b2t1.c1 = b2t2.c1)
1486 Join Filter: (b2t3.c1 = b2t1.c1)
1488 Join Filter: (b2t3.c1 = b2t4.c1)
1489 -> Tid Scan on t3 b2t3
1490 TID Cond: (ctid = '(1,1)'::tid)
1491 -> Tid Scan on t4 b2t4
1492 TID Cond: (ctid = '(1,1)'::tid)
1493 -> Tid Scan on t1 b2t1
1494 TID Cond: (ctid = '(1,1)'::tid)
1495 -> Seq Scan on t2 b2t2
1496 Filter: (ctid = '(1,1)'::tid)
1497 InitPlan 3 (returns $2)
1500 Join Filter: (b3t1.c1 = b3t3.c1)
1502 Join Filter: (b3t1.c1 = b3t2.c1)
1504 Join Filter: (b3t1.c1 = b3t4.c1)
1505 -> Tid Scan on t1 b3t1
1506 TID Cond: (ctid = '(1,1)'::tid)
1507 -> Tid Scan on t4 b3t4
1508 TID Cond: (ctid = '(1,1)'::tid)
1509 -> Seq Scan on t2 b3t2
1510 Filter: (ctid = '(1,1)'::tid)
1511 -> Tid Scan on t3 b3t3
1512 TID Cond: (ctid = '(1,1)'::tid)
1514 Join Filter: (bmt1.c1 = bmt4.c1)
1516 Join Filter: (bmt1.c1 = bmt3.c1)
1518 Join Filter: (bmt1.c1 = bmt2.c1)
1519 -> Tid Scan on t1 bmt1
1520 TID Cond: (ctid = '(1,1)'::tid)
1521 -> Seq Scan on t2 bmt2
1522 Filter: (ctid = '(1,1)'::tid)
1523 -> Tid Scan on t3 bmt3
1524 TID Cond: (ctid = '(1,1)'::tid)
1525 -> Tid Scan on t4 bmt4
1526 TID Cond: (ctid = '(1,1)'::tid)
1530 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1532 -----------------------------------------------------------
1535 Join Filter: (bmt1.c1 = bmt4.c1)
1537 Join Filter: (bmt1.c1 = bmt3.c1)
1539 Join Filter: (bmt1.c1 = bmt2.c1)
1540 -> Tid Scan on t1 bmt1
1541 TID Cond: (ctid = '(1,1)'::tid)
1542 -> Seq Scan on t2 bmt2
1543 Filter: (ctid = '(1,1)'::tid)
1544 -> Tid Scan on t3 bmt3
1545 TID Cond: (ctid = '(1,1)'::tid)
1546 -> Tid Scan on t4 bmt4
1547 TID Cond: (ctid = '(1,1)'::tid)
1551 Leading(bmt4 bmt3 bmt2 bmt1)
1553 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)';
1556 Leading(bmt4 bmt3 bmt2 bmt1)
1562 -----------------------------------------------------------
1565 Join Filter: (bmt2.c1 = bmt1.c1)
1567 Join Filter: (bmt3.c1 = bmt2.c1)
1569 Join Filter: (bmt3.c1 = bmt4.c1)
1570 -> Tid Scan on t3 bmt3
1571 TID Cond: (ctid = '(1,1)'::tid)
1572 -> Tid Scan on t4 bmt4
1573 TID Cond: (ctid = '(1,1)'::tid)
1574 -> Seq Scan on t2 bmt2
1575 Filter: (ctid = '(1,1)'::tid)
1576 -> Tid Scan on t1 bmt1
1577 TID Cond: (ctid = '(1,1)'::tid)
1581 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sbmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = sbmt2.c1 AND sbmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1583 -----------------------------------------------------------
1586 Join Filter: (bmt1.c1 = bmt4.c1)
1588 Join Filter: (bmt1.c1 = bmt3.c1)
1590 Join Filter: (bmt1.c1 = bmt2.c1)
1591 -> Tid Scan on t1 bmt1
1592 TID Cond: (ctid = '(1,1)'::tid)
1593 -> Seq Scan on t2 bmt2
1594 Filter: (ctid = '(1,1)'::tid)
1595 -> Tid Scan on t3 bmt3
1596 TID Cond: (ctid = '(1,1)'::tid)
1597 -> Tid Scan on t4 bmt4
1598 TID Cond: (ctid = '(1,1)'::tid)
1602 Leading(bmt4 bmt3 bmt2 bmt1)
1604 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)';
1607 Leading(bmt4 bmt3 bmt2 bmt1)
1613 -----------------------------------------------------------
1616 Join Filter: (bmt2.c1 = bmt1.c1)
1618 Join Filter: (bmt3.c1 = bmt2.c1)
1620 Join Filter: (bmt3.c1 = bmt4.c1)
1621 -> Tid Scan on t3 bmt3
1622 TID Cond: (ctid = '(1,1)'::tid)
1623 -> Tid Scan on t4 bmt4
1624 TID Cond: (ctid = '(1,1)'::tid)
1625 -> Seq Scan on t2 bmt2
1626 Filter: (ctid = '(1,1)'::tid)
1627 -> Tid Scan on t1 bmt1
1628 TID Cond: (ctid = '(1,1)'::tid)
1632 EXPLAIN (COSTS false)
1633 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)'
1635 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)'
1637 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)'
1641 -------------------------------------------------------------------
1643 InitPlan 1 (returns $0)
1646 Join Filter: (b1t1.c1 = b1t4.c1)
1648 Join Filter: (b1t1.c1 = b1t3.c1)
1650 Join Filter: (b1t1.c1 = b1t2.c1)
1651 -> Tid Scan on t1 b1t1
1652 TID Cond: (ctid = '(1,1)'::tid)
1653 -> Seq Scan on t2 b1t2
1654 Filter: (ctid = '(1,1)'::tid)
1655 -> Tid Scan on t3 b1t3
1656 TID Cond: (ctid = '(1,1)'::tid)
1657 -> Tid Scan on t4 b1t4
1658 TID Cond: (ctid = '(1,1)'::tid)
1659 InitPlan 2 (returns $1)
1662 Join Filter: (b2t1.c1 = b2t4.c1)
1664 Join Filter: (b2t1.c1 = b2t3.c1)
1666 Join Filter: (b2t1.c1 = b2t2.c1)
1667 -> Tid Scan on t1 b2t1
1668 TID Cond: (ctid = '(1,1)'::tid)
1669 -> Seq Scan on t2 b2t2
1670 Filter: (ctid = '(1,1)'::tid)
1671 -> Tid Scan on t3 b2t3
1672 TID Cond: (ctid = '(1,1)'::tid)
1673 -> Tid Scan on t4 b2t4
1674 TID Cond: (ctid = '(1,1)'::tid)
1676 Join Filter: (bmt1.c1 = bmt4.c1)
1678 Join Filter: (bmt1.c1 = bmt3.c1)
1680 Join Filter: (bmt1.c1 = bmt2.c1)
1681 -> Tid Scan on t1 bmt1
1682 TID Cond: (ctid = '(1,1)'::tid)
1683 Filter: ((c1 <> $0) AND (c1 <> $1))
1684 -> Seq Scan on t2 bmt2
1685 Filter: (ctid = '(1,1)'::tid)
1686 -> Tid Scan on t3 bmt3
1687 TID Cond: (ctid = '(1,1)'::tid)
1688 -> Tid Scan on t4 bmt4
1689 TID Cond: (ctid = '(1,1)'::tid)
1693 Leading(bmt1 bmt2 bmt3 bmt4)
1694 Leading(b1t2 b1t3 b1t4 b1t1)
1695 Leading(b2t3 b2t4 b2t1 b2t2)
1697 EXPLAIN (COSTS false)
1698 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)'
1700 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)'
1702 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)'
1707 Leading(bmt1 bmt2 bmt3 bmt4)
1708 Leading(b1t2 b1t3 b1t4 b1t1)
1709 Leading(b2t3 b2t4 b2t1 b2t2)
1715 -------------------------------------------------------------------
1717 InitPlan 1 (returns $0)
1720 Join Filter: (b1t2.c1 = b1t1.c1)
1722 Join Filter: (b1t2.c1 = b1t4.c1)
1724 Join Filter: (b1t2.c1 = b1t3.c1)
1725 -> Seq Scan on t2 b1t2
1726 Filter: (ctid = '(1,1)'::tid)
1727 -> Tid Scan on t3 b1t3
1728 TID Cond: (ctid = '(1,1)'::tid)
1729 -> Tid Scan on t4 b1t4
1730 TID Cond: (ctid = '(1,1)'::tid)
1731 -> Tid Scan on t1 b1t1
1732 TID Cond: (ctid = '(1,1)'::tid)
1733 InitPlan 2 (returns $1)
1736 Join Filter: (b2t1.c1 = b2t2.c1)
1738 Join Filter: (b2t3.c1 = b2t1.c1)
1740 Join Filter: (b2t3.c1 = b2t4.c1)
1741 -> Tid Scan on t3 b2t3
1742 TID Cond: (ctid = '(1,1)'::tid)
1743 -> Tid Scan on t4 b2t4
1744 TID Cond: (ctid = '(1,1)'::tid)
1745 -> Tid Scan on t1 b2t1
1746 TID Cond: (ctid = '(1,1)'::tid)
1747 -> Seq Scan on t2 b2t2
1748 Filter: (ctid = '(1,1)'::tid)
1750 Join Filter: (bmt1.c1 = bmt4.c1)
1752 Join Filter: (bmt1.c1 = bmt3.c1)
1754 Join Filter: (bmt1.c1 = bmt2.c1)
1755 -> Tid Scan on t1 bmt1
1756 TID Cond: (ctid = '(1,1)'::tid)
1757 Filter: ((c1 <> $0) AND (c1 <> $1))
1758 -> Seq Scan on t2 bmt2
1759 Filter: (ctid = '(1,1)'::tid)
1760 -> Tid Scan on t3 bmt3
1761 TID Cond: (ctid = '(1,1)'::tid)
1762 -> Tid Scan on t4 bmt4
1763 TID Cond: (ctid = '(1,1)'::tid)
1767 EXPLAIN (COSTS false)
1768 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)'
1770 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)'
1772 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)'
1774 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)'
1778 ------------------------------------------------------------------------------
1780 InitPlan 1 (returns $0)
1783 Join Filter: (b1t1.c1 = b1t4.c1)
1785 Join Filter: (b1t1.c1 = b1t3.c1)
1787 Join Filter: (b1t1.c1 = b1t2.c1)
1788 -> Tid Scan on t1 b1t1
1789 TID Cond: (ctid = '(1,1)'::tid)
1790 -> Seq Scan on t2 b1t2
1791 Filter: (ctid = '(1,1)'::tid)
1792 -> Tid Scan on t3 b1t3
1793 TID Cond: (ctid = '(1,1)'::tid)
1794 -> Tid Scan on t4 b1t4
1795 TID Cond: (ctid = '(1,1)'::tid)
1796 InitPlan 2 (returns $1)
1799 Join Filter: (b2t1.c1 = b2t4.c1)
1801 Join Filter: (b2t1.c1 = b2t3.c1)
1803 Join Filter: (b2t1.c1 = b2t2.c1)
1804 -> Tid Scan on t1 b2t1
1805 TID Cond: (ctid = '(1,1)'::tid)
1806 -> Seq Scan on t2 b2t2
1807 Filter: (ctid = '(1,1)'::tid)
1808 -> Tid Scan on t3 b2t3
1809 TID Cond: (ctid = '(1,1)'::tid)
1810 -> Tid Scan on t4 b2t4
1811 TID Cond: (ctid = '(1,1)'::tid)
1812 InitPlan 3 (returns $2)
1815 Join Filter: (b3t1.c1 = b3t4.c1)
1817 Join Filter: (b3t1.c1 = b3t3.c1)
1819 Join Filter: (b3t1.c1 = b3t2.c1)
1820 -> Tid Scan on t1 b3t1
1821 TID Cond: (ctid = '(1,1)'::tid)
1822 -> Seq Scan on t2 b3t2
1823 Filter: (ctid = '(1,1)'::tid)
1824 -> Tid Scan on t3 b3t3
1825 TID Cond: (ctid = '(1,1)'::tid)
1826 -> Tid Scan on t4 b3t4
1827 TID Cond: (ctid = '(1,1)'::tid)
1829 Join Filter: (bmt1.c1 = bmt4.c1)
1831 Join Filter: (bmt1.c1 = bmt3.c1)
1833 Join Filter: (bmt1.c1 = bmt2.c1)
1834 -> Tid Scan on t1 bmt1
1835 TID Cond: (ctid = '(1,1)'::tid)
1836 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1837 -> Seq Scan on t2 bmt2
1838 Filter: (ctid = '(1,1)'::tid)
1839 -> Tid Scan on t3 bmt3
1840 TID Cond: (ctid = '(1,1)'::tid)
1841 -> Tid Scan on t4 bmt4
1842 TID Cond: (ctid = '(1,1)'::tid)
1846 Leading(bmt1 bmt2 bmt3 bmt4)
1847 Leading(b1t2 b1t3 b1t4 b1t1)
1848 Leading(b2t3 b2t4 b2t1 b2t2)
1849 Leading(b3t4 b3t1 b3t2 b3t3)
1851 EXPLAIN (COSTS false)
1852 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)'
1854 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)'
1856 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)'
1858 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)'
1863 Leading(bmt1 bmt2 bmt3 bmt4)
1864 Leading(b1t2 b1t3 b1t4 b1t1)
1865 Leading(b2t3 b2t4 b2t1 b2t2)
1866 Leading(b3t4 b3t1 b3t2 b3t3)
1872 ------------------------------------------------------------------------------
1874 InitPlan 1 (returns $0)
1877 Join Filter: (b1t2.c1 = b1t1.c1)
1879 Join Filter: (b1t2.c1 = b1t4.c1)
1881 Join Filter: (b1t2.c1 = b1t3.c1)
1882 -> Seq Scan on t2 b1t2
1883 Filter: (ctid = '(1,1)'::tid)
1884 -> Tid Scan on t3 b1t3
1885 TID Cond: (ctid = '(1,1)'::tid)
1886 -> Tid Scan on t4 b1t4
1887 TID Cond: (ctid = '(1,1)'::tid)
1888 -> Tid Scan on t1 b1t1
1889 TID Cond: (ctid = '(1,1)'::tid)
1890 InitPlan 2 (returns $1)
1893 Join Filter: (b2t1.c1 = b2t2.c1)
1895 Join Filter: (b2t3.c1 = b2t1.c1)
1897 Join Filter: (b2t3.c1 = b2t4.c1)
1898 -> Tid Scan on t3 b2t3
1899 TID Cond: (ctid = '(1,1)'::tid)
1900 -> Tid Scan on t4 b2t4
1901 TID Cond: (ctid = '(1,1)'::tid)
1902 -> Tid Scan on t1 b2t1
1903 TID Cond: (ctid = '(1,1)'::tid)
1904 -> Seq Scan on t2 b2t2
1905 Filter: (ctid = '(1,1)'::tid)
1906 InitPlan 3 (returns $2)
1909 Join Filter: (b3t1.c1 = b3t3.c1)
1911 Join Filter: (b3t1.c1 = b3t2.c1)
1913 Join Filter: (b3t1.c1 = b3t4.c1)
1914 -> Tid Scan on t1 b3t1
1915 TID Cond: (ctid = '(1,1)'::tid)
1916 -> Tid Scan on t4 b3t4
1917 TID Cond: (ctid = '(1,1)'::tid)
1918 -> Seq Scan on t2 b3t2
1919 Filter: (ctid = '(1,1)'::tid)
1920 -> Tid Scan on t3 b3t3
1921 TID Cond: (ctid = '(1,1)'::tid)
1923 Join Filter: (bmt1.c1 = bmt4.c1)
1925 Join Filter: (bmt1.c1 = bmt3.c1)
1927 Join Filter: (bmt1.c1 = bmt2.c1)
1928 -> Tid Scan on t1 bmt1
1929 TID Cond: (ctid = '(1,1)'::tid)
1930 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1931 -> Seq Scan on t2 bmt2
1932 Filter: (ctid = '(1,1)'::tid)
1933 -> Tid Scan on t3 bmt3
1934 TID Cond: (ctid = '(1,1)'::tid)
1935 -> Tid Scan on t4 bmt4
1936 TID Cond: (ctid = '(1,1)'::tid)
1940 EXPLAIN (COSTS false)
1942 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)'
1945 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)'
1947 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1949 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)'
1954 -----------------------------------------------------------------------
1959 Join Filter: (b1t1.c1 = b1t4.c1)
1961 Join Filter: (b1t1.c1 = b1t3.c1)
1963 Join Filter: (b1t1.c1 = b1t2.c1)
1964 -> Tid Scan on t1 b1t1
1965 TID Cond: (ctid = '(1,1)'::tid)
1966 -> Seq Scan on t2 b1t2
1967 Filter: (ctid = '(1,1)'::tid)
1968 -> Tid Scan on t3 b1t3
1969 TID Cond: (ctid = '(1,1)'::tid)
1970 -> Tid Scan on t4 b1t4
1971 TID Cond: (ctid = '(1,1)'::tid)
1975 Join Filter: (b2t1.c1 = b2t4.c1)
1977 Join Filter: (b2t1.c1 = b2t3.c1)
1979 Join Filter: (b2t1.c1 = b2t2.c1)
1980 -> Tid Scan on t1 b2t1
1981 TID Cond: (ctid = '(1,1)'::tid)
1982 -> Seq Scan on t2 b2t2
1983 Filter: (ctid = '(1,1)'::tid)
1984 -> Tid Scan on t3 b2t3
1985 TID Cond: (ctid = '(1,1)'::tid)
1986 -> Tid Scan on t4 b2t4
1987 TID Cond: (ctid = '(1,1)'::tid)
1989 Join Filter: (bmt1.c1 = c2.c1)
1991 Join Filter: (bmt1.c1 = c1.c1)
1993 Join Filter: (bmt1.c1 = bmt4.c1)
1995 Join Filter: (bmt1.c1 = bmt3.c1)
1997 Join Filter: (bmt1.c1 = bmt2.c1)
1998 -> Tid Scan on t1 bmt1
1999 TID Cond: (ctid = '(1,1)'::tid)
2000 -> Seq Scan on t2 bmt2
2001 Filter: (ctid = '(1,1)'::tid)
2002 -> Tid Scan on t3 bmt3
2003 TID Cond: (ctid = '(1,1)'::tid)
2004 -> Tid Scan on t4 bmt4
2005 TID Cond: (ctid = '(1,1)'::tid)
2011 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2012 Leading(b1t2 b1t3 b1t4 b1t1)
2013 Leading(b2t3 b2t4 b2t1 b2t2)
2015 EXPLAIN (COSTS false)
2017 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)'
2020 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)'
2022 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2024 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)'
2030 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2031 Leading(b1t2 b1t3 b1t4 b1t1)
2032 Leading(b2t3 b2t4 b2t1 b2t2)
2038 -------------------------------------------------------------------
2043 Join Filter: (b1t2.c1 = b1t1.c1)
2045 Join Filter: (b1t2.c1 = b1t4.c1)
2047 Join Filter: (b1t2.c1 = b1t3.c1)
2048 -> Seq Scan on t2 b1t2
2049 Filter: (ctid = '(1,1)'::tid)
2050 -> Tid Scan on t3 b1t3
2051 TID Cond: (ctid = '(1,1)'::tid)
2052 -> Tid Scan on t4 b1t4
2053 TID Cond: (ctid = '(1,1)'::tid)
2054 -> Tid Scan on t1 b1t1
2055 TID Cond: (ctid = '(1,1)'::tid)
2059 Join Filter: (b2t1.c1 = b2t2.c1)
2061 Join Filter: (b2t3.c1 = b2t1.c1)
2063 Join Filter: (b2t3.c1 = b2t4.c1)
2064 -> Tid Scan on t3 b2t3
2065 TID Cond: (ctid = '(1,1)'::tid)
2066 -> Tid Scan on t4 b2t4
2067 TID Cond: (ctid = '(1,1)'::tid)
2068 -> Tid Scan on t1 b2t1
2069 TID Cond: (ctid = '(1,1)'::tid)
2070 -> Seq Scan on t2 b2t2
2071 Filter: (ctid = '(1,1)'::tid)
2073 Join Filter: (bmt1.c1 = bmt4.c1)
2075 Join Filter: (bmt1.c1 = bmt3.c1)
2077 Join Filter: (bmt1.c1 = bmt2.c1)
2079 Join Filter: (c1.c1 = bmt1.c1)
2081 Join Filter: (c1.c1 = c2.c1)
2084 -> Tid Scan on t1 bmt1
2085 TID Cond: (ctid = '(1,1)'::tid)
2086 -> Seq Scan on t2 bmt2
2087 Filter: (ctid = '(1,1)'::tid)
2088 -> Tid Scan on t3 bmt3
2089 TID Cond: (ctid = '(1,1)'::tid)
2090 -> Tid Scan on t4 bmt4
2091 TID Cond: (ctid = '(1,1)'::tid)
2095 EXPLAIN (COSTS false)
2097 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)'
2100 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)'
2103 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)'
2105 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2107 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)'
2113 -----------------------------------------------------------------------------
2118 Join Filter: (b1t1.c1 = b1t4.c1)
2120 Join Filter: (b1t1.c1 = b1t3.c1)
2122 Join Filter: (b1t1.c1 = b1t2.c1)
2123 -> Tid Scan on t1 b1t1
2124 TID Cond: (ctid = '(1,1)'::tid)
2125 -> Seq Scan on t2 b1t2
2126 Filter: (ctid = '(1,1)'::tid)
2127 -> Tid Scan on t3 b1t3
2128 TID Cond: (ctid = '(1,1)'::tid)
2129 -> Tid Scan on t4 b1t4
2130 TID Cond: (ctid = '(1,1)'::tid)
2134 Join Filter: (b2t1.c1 = b2t4.c1)
2136 Join Filter: (b2t1.c1 = b2t3.c1)
2138 Join Filter: (b2t1.c1 = b2t2.c1)
2139 -> Tid Scan on t1 b2t1
2140 TID Cond: (ctid = '(1,1)'::tid)
2141 -> Seq Scan on t2 b2t2
2142 Filter: (ctid = '(1,1)'::tid)
2143 -> Tid Scan on t3 b2t3
2144 TID Cond: (ctid = '(1,1)'::tid)
2145 -> Tid Scan on t4 b2t4
2146 TID Cond: (ctid = '(1,1)'::tid)
2150 Join Filter: (b3t1.c1 = b3t4.c1)
2152 Join Filter: (b3t1.c1 = b3t3.c1)
2154 Join Filter: (b3t1.c1 = b3t2.c1)
2155 -> Tid Scan on t1 b3t1
2156 TID Cond: (ctid = '(1,1)'::tid)
2157 -> Seq Scan on t2 b3t2
2158 Filter: (ctid = '(1,1)'::tid)
2159 -> Tid Scan on t3 b3t3
2160 TID Cond: (ctid = '(1,1)'::tid)
2161 -> Tid Scan on t4 b3t4
2162 TID Cond: (ctid = '(1,1)'::tid)
2164 Join Filter: (bmt1.c1 = c3.c1)
2166 Join Filter: (bmt1.c1 = c2.c1)
2168 Join Filter: (bmt1.c1 = c1.c1)
2170 Join Filter: (bmt1.c1 = bmt4.c1)
2172 Join Filter: (bmt1.c1 = bmt3.c1)
2174 Join Filter: (bmt1.c1 = bmt2.c1)
2175 -> Tid Scan on t1 bmt1
2176 TID Cond: (ctid = '(1,1)'::tid)
2177 -> Seq Scan on t2 bmt2
2178 Filter: (ctid = '(1,1)'::tid)
2179 -> Tid Scan on t3 bmt3
2180 TID Cond: (ctid = '(1,1)'::tid)
2181 -> Tid Scan on t4 bmt4
2182 TID Cond: (ctid = '(1,1)'::tid)
2189 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2190 Leading(b1t2 b1t3 b1t4 b1t1)
2191 Leading(b2t3 b2t4 b2t1 b2t2)
2192 Leading(b3t4 b3t1 b3t2 b3t3)
2194 EXPLAIN (COSTS false)
2196 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)'
2199 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)'
2202 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)'
2204 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2206 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)'
2213 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2214 Leading(b1t2 b1t3 b1t4 b1t1)
2215 Leading(b2t3 b2t4 b2t1 b2t2)
2216 Leading(b3t4 b3t1 b3t2 b3t3)
2222 --------------------------------------------------------------------
2227 Join Filter: (b1t2.c1 = b1t1.c1)
2229 Join Filter: (b1t2.c1 = b1t4.c1)
2231 Join Filter: (b1t2.c1 = b1t3.c1)
2232 -> Seq Scan on t2 b1t2
2233 Filter: (ctid = '(1,1)'::tid)
2234 -> Tid Scan on t3 b1t3
2235 TID Cond: (ctid = '(1,1)'::tid)
2236 -> Tid Scan on t4 b1t4
2237 TID Cond: (ctid = '(1,1)'::tid)
2238 -> Tid Scan on t1 b1t1
2239 TID Cond: (ctid = '(1,1)'::tid)
2243 Join Filter: (b2t1.c1 = b2t2.c1)
2245 Join Filter: (b2t3.c1 = b2t1.c1)
2247 Join Filter: (b2t3.c1 = b2t4.c1)
2248 -> Tid Scan on t3 b2t3
2249 TID Cond: (ctid = '(1,1)'::tid)
2250 -> Tid Scan on t4 b2t4
2251 TID Cond: (ctid = '(1,1)'::tid)
2252 -> Tid Scan on t1 b2t1
2253 TID Cond: (ctid = '(1,1)'::tid)
2254 -> Seq Scan on t2 b2t2
2255 Filter: (ctid = '(1,1)'::tid)
2259 Join Filter: (b3t1.c1 = b3t3.c1)
2261 Join Filter: (b3t1.c1 = b3t2.c1)
2263 Join Filter: (b3t1.c1 = b3t4.c1)
2264 -> Tid Scan on t1 b3t1
2265 TID Cond: (ctid = '(1,1)'::tid)
2266 -> Tid Scan on t4 b3t4
2267 TID Cond: (ctid = '(1,1)'::tid)
2268 -> Seq Scan on t2 b3t2
2269 Filter: (ctid = '(1,1)'::tid)
2270 -> Tid Scan on t3 b3t3
2271 TID Cond: (ctid = '(1,1)'::tid)
2273 Join Filter: (bmt1.c1 = bmt4.c1)
2275 Join Filter: (bmt1.c1 = bmt3.c1)
2277 Join Filter: (bmt1.c1 = bmt2.c1)
2279 Join Filter: (c1.c1 = bmt1.c1)
2281 Join Filter: (c2.c1 = c1.c1)
2283 Join Filter: (c2.c1 = c3.c1)
2287 -> Tid Scan on t1 bmt1
2288 TID Cond: (ctid = '(1,1)'::tid)
2289 -> Seq Scan on t2 bmt2
2290 Filter: (ctid = '(1,1)'::tid)
2291 -> Tid Scan on t3 bmt3
2292 TID Cond: (ctid = '(1,1)'::tid)
2293 -> Tid Scan on t4 bmt4
2294 TID Cond: (ctid = '(1,1)'::tid)
2298 ---- No. L-2-2 the number of the tables per quiry block
2301 EXPLAIN (COSTS false)
2303 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2305 SELECT max(bmt1.c1), (
2306 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2308 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2310 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2314 -----------------------------------------------------------------
2318 InitPlan 1 (returns $0)
2320 -> Tid Scan on t1 b1t1
2321 TID Cond: (ctid = '(1,1)'::tid)
2322 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2323 InitPlan 4 (returns $3)
2325 InitPlan 3 (returns $2)
2327 -> Tid Scan on t1 b2t1
2328 TID Cond: (ctid = '(1,1)'::tid)
2329 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2330 InitPlan 6 (returns $5)
2332 InitPlan 5 (returns $4)
2334 -> Tid Scan on t1 b3t1
2335 TID Cond: (ctid = '(1,1)'::tid)
2336 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2338 -> Tid Scan on t1 bmt1
2339 TID Cond: (ctid = '(1,1)'::tid)
2340 Filter: ((c1 <> $5) AND (c1 = 1))
2347 EXPLAIN (COSTS false)
2349 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2351 SELECT max(bmt1.c1), (
2352 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2354 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2356 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2367 -----------------------------------------------------------------
2371 InitPlan 1 (returns $0)
2373 -> Tid Scan on t1 b1t1
2374 TID Cond: (ctid = '(1,1)'::tid)
2375 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2376 InitPlan 4 (returns $3)
2378 InitPlan 3 (returns $2)
2380 -> Tid Scan on t1 b2t1
2381 TID Cond: (ctid = '(1,1)'::tid)
2382 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2383 InitPlan 6 (returns $5)
2385 InitPlan 5 (returns $4)
2387 -> Tid Scan on t1 b3t1
2388 TID Cond: (ctid = '(1,1)'::tid)
2389 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2391 -> Tid Scan on t1 bmt1
2392 TID Cond: (ctid = '(1,1)'::tid)
2393 Filter: ((c1 <> $5) AND (c1 = 1))
2398 EXPLAIN (COSTS false)
2400 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)'
2402 SELECT max(bmt1.c1), (
2403 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)'
2405 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2408 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)'
2412 -------------------------------------------------------
2417 Join Filter: (b1t1.c1 = b1t2.c1)
2418 -> Tid Scan on t1 b1t1
2419 TID Cond: (ctid = '(1,1)'::tid)
2420 -> Seq Scan on t2 b1t2
2421 Filter: (ctid = '(1,1)'::tid)
2422 InitPlan 2 (returns $1)
2425 Join Filter: (b2t1.c1 = b2t2.c1)
2426 -> Tid Scan on t1 b2t1
2427 TID Cond: (ctid = '(1,1)'::tid)
2428 -> Seq Scan on t2 b2t2
2429 Filter: (ctid = '(1,1)'::tid)
2430 InitPlan 3 (returns $2)
2433 Join Filter: (b3t1.c1 = b3t2.c1)
2434 -> Tid Scan on t1 b3t1
2435 TID Cond: (ctid = '(1,1)'::tid)
2436 -> Seq Scan on t2 b3t2
2437 Filter: (ctid = '(1,1)'::tid)
2439 Join Filter: (bmt1.c1 = c1.c1)
2441 Join Filter: (bmt1.c1 = bmt2.c1)
2442 -> Tid Scan on t1 bmt1
2443 TID Cond: (ctid = '(1,1)'::tid)
2445 -> Seq Scan on t2 bmt2
2446 Filter: (ctid = '(1,1)'::tid)
2451 Leading(c1 bmt2 bmt1)
2456 EXPLAIN (COSTS false)
2458 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)'
2460 SELECT max(bmt1.c1), (
2461 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)'
2463 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2466 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)'
2471 Leading(c1 bmt2 bmt1)
2480 -------------------------------------------------------
2485 Join Filter: (b1t1.c1 = b1t2.c1)
2486 -> Tid Scan on t1 b1t1
2487 TID Cond: (ctid = '(1,1)'::tid)
2488 -> Seq Scan on t2 b1t2
2489 Filter: (ctid = '(1,1)'::tid)
2490 InitPlan 2 (returns $1)
2493 Join Filter: (b2t1.c1 = b2t2.c1)
2494 -> Tid Scan on t1 b2t1
2495 TID Cond: (ctid = '(1,1)'::tid)
2496 -> Seq Scan on t2 b2t2
2497 Filter: (ctid = '(1,1)'::tid)
2498 InitPlan 3 (returns $2)
2501 Join Filter: (b3t1.c1 = b3t2.c1)
2502 -> Tid Scan on t1 b3t1
2503 TID Cond: (ctid = '(1,1)'::tid)
2504 -> Seq Scan on t2 b3t2
2505 Filter: (ctid = '(1,1)'::tid)
2507 Join Filter: (bmt2.c1 = bmt1.c1)
2509 Join Filter: (bmt2.c1 = c1.c1)
2510 -> Seq Scan on t2 bmt2
2511 Filter: (ctid = '(1,1)'::tid)
2513 -> Tid Scan on t1 bmt1
2514 TID Cond: (ctid = '(1,1)'::tid)
2519 EXPLAIN (COSTS false)
2521 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)'
2523 SELECT max(bmt1.c1), (
2524 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)'
2526 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
2528 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)'
2532 -------------------------------------------------------------------
2537 Join Filter: (b1t1.c1 = b1t4.c1)
2539 Join Filter: (b1t1.c1 = b1t3.c1)
2541 Join Filter: (b1t1.c1 = b1t2.c1)
2542 -> Tid Scan on t1 b1t1
2543 TID Cond: (ctid = '(1,1)'::tid)
2544 -> Seq Scan on t2 b1t2
2545 Filter: (ctid = '(1,1)'::tid)
2546 -> Tid Scan on t3 b1t3
2547 TID Cond: (ctid = '(1,1)'::tid)
2548 -> Tid Scan on t4 b1t4
2549 TID Cond: (ctid = '(1,1)'::tid)
2550 InitPlan 2 (returns $1)
2553 Join Filter: (b2t1.c1 = b2t4.c1)
2555 Join Filter: (b2t1.c1 = b2t3.c1)
2557 Join Filter: (b2t1.c1 = b2t2.c1)
2558 -> Tid Scan on t1 b2t1
2559 TID Cond: (ctid = '(1,1)'::tid)
2560 -> Seq Scan on t2 b2t2
2561 Filter: (ctid = '(1,1)'::tid)
2562 -> Tid Scan on t3 b2t3
2563 TID Cond: (ctid = '(1,1)'::tid)
2564 -> Tid Scan on t4 b2t4
2565 TID Cond: (ctid = '(1,1)'::tid)
2566 InitPlan 3 (returns $2)
2569 Join Filter: (b3t1.c1 = b3t4.c1)
2571 Join Filter: (b3t1.c1 = b3t3.c1)
2573 Join Filter: (b3t1.c1 = b3t2.c1)
2574 -> Tid Scan on t1 b3t1
2575 TID Cond: (ctid = '(1,1)'::tid)
2576 -> Seq Scan on t2 b3t2
2577 Filter: (ctid = '(1,1)'::tid)
2578 -> Tid Scan on t3 b3t3
2579 TID Cond: (ctid = '(1,1)'::tid)
2580 -> Tid Scan on t4 b3t4
2581 TID Cond: (ctid = '(1,1)'::tid)
2583 Join Filter: (bmt1.c1 = c1.c1)
2585 Join Filter: (bmt1.c1 = bmt4.c1)
2587 Join Filter: (bmt1.c1 = bmt3.c1)
2589 Join Filter: (bmt1.c1 = bmt2.c1)
2590 -> Tid Scan on t1 bmt1
2591 TID Cond: (ctid = '(1,1)'::tid)
2593 -> Seq Scan on t2 bmt2
2594 Filter: (ctid = '(1,1)'::tid)
2595 -> Tid Scan on t3 bmt3
2596 TID Cond: (ctid = '(1,1)'::tid)
2597 -> Tid Scan on t4 bmt4
2598 TID Cond: (ctid = '(1,1)'::tid)
2603 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2604 Leading(b1t4 b1t3 b1t2 b1t1)
2605 Leading(b2t4 b2t3 b2t2 b2t1)
2606 Leading(b3t4 b3t3 b3t2 b3t1)
2608 EXPLAIN (COSTS false)
2610 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)'
2612 SELECT max(bmt1.c1), (
2613 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)'
2615 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
2617 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)'
2622 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2623 Leading(b1t4 b1t3 b1t2 b1t1)
2624 Leading(b2t4 b2t3 b2t2 b2t1)
2625 Leading(b3t4 b3t3 b3t2 b3t1)
2631 -------------------------------------------------------------------
2636 Join Filter: (b1t2.c1 = b1t1.c1)
2638 Join Filter: (b1t3.c1 = b1t2.c1)
2640 Join Filter: (b1t3.c1 = b1t4.c1)
2641 -> Tid Scan on t3 b1t3
2642 TID Cond: (ctid = '(1,1)'::tid)
2643 -> Tid Scan on t4 b1t4
2644 TID Cond: (ctid = '(1,1)'::tid)
2645 -> Seq Scan on t2 b1t2
2646 Filter: (ctid = '(1,1)'::tid)
2647 -> Tid Scan on t1 b1t1
2648 TID Cond: (ctid = '(1,1)'::tid)
2649 InitPlan 2 (returns $1)
2652 Join Filter: (b2t2.c1 = b2t1.c1)
2654 Join Filter: (b2t3.c1 = b2t2.c1)
2656 Join Filter: (b2t3.c1 = b2t4.c1)
2657 -> Tid Scan on t3 b2t3
2658 TID Cond: (ctid = '(1,1)'::tid)
2659 -> Tid Scan on t4 b2t4
2660 TID Cond: (ctid = '(1,1)'::tid)
2661 -> Seq Scan on t2 b2t2
2662 Filter: (ctid = '(1,1)'::tid)
2663 -> Tid Scan on t1 b2t1
2664 TID Cond: (ctid = '(1,1)'::tid)
2665 InitPlan 3 (returns $2)
2668 Join Filter: (b3t2.c1 = b3t1.c1)
2670 Join Filter: (b3t3.c1 = b3t2.c1)
2672 Join Filter: (b3t3.c1 = b3t4.c1)
2673 -> Tid Scan on t3 b3t3
2674 TID Cond: (ctid = '(1,1)'::tid)
2675 -> Tid Scan on t4 b3t4
2676 TID Cond: (ctid = '(1,1)'::tid)
2677 -> Seq Scan on t2 b3t2
2678 Filter: (ctid = '(1,1)'::tid)
2679 -> Tid Scan on t1 b3t1
2680 TID Cond: (ctid = '(1,1)'::tid)
2682 Join Filter: (bmt2.c1 = bmt1.c1)
2684 Join Filter: (bmt3.c1 = bmt2.c1)
2686 Join Filter: (bmt4.c1 = bmt3.c1)
2688 Join Filter: (bmt4.c1 = c1.c1)
2689 -> Tid Scan on t4 bmt4
2690 TID Cond: (ctid = '(1,1)'::tid)
2692 -> Tid Scan on t3 bmt3
2693 TID Cond: (ctid = '(1,1)'::tid)
2694 -> Seq Scan on t2 bmt2
2695 Filter: (ctid = '(1,1)'::tid)
2696 -> Tid Scan on t1 bmt1
2697 TID Cond: (ctid = '(1,1)'::tid)
2702 EXPLAIN (COSTS false)
2704 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)'
2706 SELECT max(bmt1.c1), (
2707 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2709 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
2711 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2715 -------------------------------------------------------------------
2720 Join Filter: (b1t1.c1 = b1t4.c1)
2722 Join Filter: (b1t1.c1 = b1t3.c1)
2724 Join Filter: (b1t1.c1 = b1t2.c1)
2725 -> Tid Scan on t1 b1t1
2726 TID Cond: (ctid = '(1,1)'::tid)
2727 -> Seq Scan on t2 b1t2
2728 Filter: (ctid = '(1,1)'::tid)
2729 -> Tid Scan on t3 b1t3
2730 TID Cond: (ctid = '(1,1)'::tid)
2731 -> Tid Scan on t4 b1t4
2732 TID Cond: (ctid = '(1,1)'::tid)
2733 InitPlan 3 (returns $2)
2735 InitPlan 2 (returns $1)
2737 -> Tid Scan on t1 b2t1
2738 TID Cond: (ctid = '(1,1)'::tid)
2739 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2740 InitPlan 4 (returns $4)
2742 -> Tid Scan on t1 b3t1
2743 TID Cond: (ctid = '(1,1)'::tid)
2745 Join Filter: (bmt1.c1 = c1.c1)
2747 Join Filter: (bmt1.c1 = bmt4.c1)
2749 Join Filter: (bmt1.c1 = bmt3.c1)
2751 Join Filter: (bmt1.c1 = bmt2.c1)
2752 -> Tid Scan on t1 bmt1
2753 TID Cond: (ctid = '(1,1)'::tid)
2755 -> Seq Scan on t2 bmt2
2756 Filter: (ctid = '(1,1)'::tid)
2757 -> Tid Scan on t3 bmt3
2758 TID Cond: (ctid = '(1,1)'::tid)
2759 -> Tid Scan on t4 bmt4
2760 TID Cond: (ctid = '(1,1)'::tid)
2765 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2766 Leading(b1t4 b1t3 b1t2 b1t1)
2768 EXPLAIN (COSTS false)
2770 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)'
2772 SELECT max(bmt1.c1), (
2773 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2775 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
2777 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2782 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2783 Leading(b1t4 b1t3 b1t2 b1t1)
2789 -------------------------------------------------------------------
2794 Join Filter: (b1t2.c1 = b1t1.c1)
2796 Join Filter: (b1t3.c1 = b1t2.c1)
2798 Join Filter: (b1t3.c1 = b1t4.c1)
2799 -> Tid Scan on t3 b1t3
2800 TID Cond: (ctid = '(1,1)'::tid)
2801 -> Tid Scan on t4 b1t4
2802 TID Cond: (ctid = '(1,1)'::tid)
2803 -> Seq Scan on t2 b1t2
2804 Filter: (ctid = '(1,1)'::tid)
2805 -> Tid Scan on t1 b1t1
2806 TID Cond: (ctid = '(1,1)'::tid)
2807 InitPlan 3 (returns $2)
2809 InitPlan 2 (returns $1)
2811 -> Tid Scan on t1 b2t1
2812 TID Cond: (ctid = '(1,1)'::tid)
2813 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2814 InitPlan 4 (returns $4)
2816 -> Tid Scan on t1 b3t1
2817 TID Cond: (ctid = '(1,1)'::tid)
2819 Join Filter: (bmt2.c1 = bmt1.c1)
2821 Join Filter: (bmt3.c1 = bmt2.c1)
2823 Join Filter: (bmt4.c1 = bmt3.c1)
2825 Join Filter: (bmt4.c1 = c1.c1)
2826 -> Tid Scan on t4 bmt4
2827 TID Cond: (ctid = '(1,1)'::tid)
2829 -> Tid Scan on t3 bmt3
2830 TID Cond: (ctid = '(1,1)'::tid)
2831 -> Seq Scan on t2 bmt2
2832 Filter: (ctid = '(1,1)'::tid)
2833 -> Tid Scan on t1 bmt1
2834 TID Cond: (ctid = '(1,1)'::tid)
2839 ---- No. L-2-3 RULE or VIEW
2842 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2844 -----------------------------------------------------------------
2847 Join Filter: (t1.c1 = t4.c1)
2849 Join Filter: (t1.c1 = t3.c1)
2851 Join Filter: (t1.c1 = t2.c1)
2854 TID Cond: (ctid = '(1,1)'::tid)
2857 TID Cond: (ctid = '(1,1)'::tid)
2859 Filter: (ctid = '(1,1)'::tid)
2861 TID Cond: (ctid = '(1,1)'::tid)
2863 TID Cond: (ctid = '(1,1)'::tid)
2866 /*+ Leading(t4 t3 t2 t1 r1) */
2867 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2870 Leading(t4 t3 t2 t1 r1)
2876 -----------------------------------------------------------------
2880 Join Filter: (t2.c1 = t1.c1)
2882 Join Filter: (t3.c1 = t2.c1)
2884 Join Filter: (t3.c1 = t4.c1)
2886 TID Cond: (ctid = '(1,1)'::tid)
2888 TID Cond: (ctid = '(1,1)'::tid)
2890 Filter: (ctid = '(1,1)'::tid)
2892 TID Cond: (ctid = '(1,1)'::tid)
2894 TID Cond: (ctid = '(1,1)'::tid)
2898 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2900 -----------------------------------------------------------------
2903 Join Filter: (b1t1.c1 = b1t4.c1)
2905 Join Filter: (b1t1.c1 = b1t3.c1)
2907 Join Filter: (b1t1.c1 = b1t2.c1)
2910 TID Cond: (ctid = '(1,1)'::tid)
2912 -> Tid Scan on t1 b1t1
2913 TID Cond: (ctid = '(1,1)'::tid)
2914 -> Seq Scan on t2 b1t2
2915 Filter: (ctid = '(1,1)'::tid)
2916 -> Tid Scan on t3 b1t3
2917 TID Cond: (ctid = '(1,1)'::tid)
2918 -> Tid Scan on t4 b1t4
2919 TID Cond: (ctid = '(1,1)'::tid)
2922 /*+ Leading(b1t1 b1t2 b1t3 b1t4 r1_) */
2923 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2926 Leading(b1t1 b1t2 b1t3 b1t4 r1_)
2932 -----------------------------------------------------------------
2936 Join Filter: (b1t1.c1 = b1t4.c1)
2938 Join Filter: (b1t1.c1 = b1t3.c1)
2940 Join Filter: (b1t1.c1 = b1t2.c1)
2941 -> Tid Scan on t1 b1t1
2942 TID Cond: (ctid = '(1,1)'::tid)
2943 -> Seq Scan on t2 b1t2
2944 Filter: (ctid = '(1,1)'::tid)
2945 -> Tid Scan on t3 b1t3
2946 TID Cond: (ctid = '(1,1)'::tid)
2947 -> Tid Scan on t4 b1t4
2948 TID Cond: (ctid = '(1,1)'::tid)
2950 TID Cond: (ctid = '(1,1)'::tid)
2955 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2957 -----------------------------------------------------------------
2960 Join Filter: (t1.c1 = t4.c1)
2962 Join Filter: (t1.c1 = t3.c1)
2964 Join Filter: (t1.c1 = t2.c1)
2967 TID Cond: (ctid = '(1,1)'::tid)
2970 TID Cond: (ctid = '(1,1)'::tid)
2972 Filter: (ctid = '(1,1)'::tid)
2974 TID Cond: (ctid = '(1,1)'::tid)
2976 TID Cond: (ctid = '(1,1)'::tid)
2980 Join Filter: (t1.c1 = t4.c1)
2982 Join Filter: (t1.c1 = t3.c1)
2984 Join Filter: (t1.c1 = t2.c1)
2987 TID Cond: (ctid = '(1,1)'::tid)
2990 TID Cond: (ctid = '(1,1)'::tid)
2992 Filter: (ctid = '(1,1)'::tid)
2994 TID Cond: (ctid = '(1,1)'::tid)
2996 TID Cond: (ctid = '(1,1)'::tid)
2999 /*+ Leading(t4 t3 t2 t1 r2) */
3000 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3003 Leading(t4 t3 t2 t1 r2)
3010 Leading(t4 t3 t2 t1 r2)
3016 -----------------------------------------------------------------
3020 Join Filter: (t2.c1 = t1.c1)
3022 Join Filter: (t3.c1 = t2.c1)
3024 Join Filter: (t3.c1 = t4.c1)
3026 TID Cond: (ctid = '(1,1)'::tid)
3028 TID Cond: (ctid = '(1,1)'::tid)
3030 Filter: (ctid = '(1,1)'::tid)
3032 TID Cond: (ctid = '(1,1)'::tid)
3034 TID Cond: (ctid = '(1,1)'::tid)
3040 Join Filter: (t2.c1 = t1.c1)
3042 Join Filter: (t3.c1 = t2.c1)
3044 Join Filter: (t3.c1 = t4.c1)
3046 TID Cond: (ctid = '(1,1)'::tid)
3048 TID Cond: (ctid = '(1,1)'::tid)
3050 Filter: (ctid = '(1,1)'::tid)
3052 TID Cond: (ctid = '(1,1)'::tid)
3054 TID Cond: (ctid = '(1,1)'::tid)
3058 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3060 -----------------------------------------------------------------
3063 Join Filter: (b1t1.c1 = b1t4.c1)
3065 Join Filter: (b1t1.c1 = b1t3.c1)
3067 Join Filter: (b1t1.c1 = b1t2.c1)
3070 TID Cond: (ctid = '(1,1)'::tid)
3072 -> Tid Scan on t1 b1t1
3073 TID Cond: (ctid = '(1,1)'::tid)
3074 -> Seq Scan on t2 b1t2
3075 Filter: (ctid = '(1,1)'::tid)
3076 -> Tid Scan on t3 b1t3
3077 TID Cond: (ctid = '(1,1)'::tid)
3078 -> Tid Scan on t4 b1t4
3079 TID Cond: (ctid = '(1,1)'::tid)
3083 Join Filter: (b2t1.c1 = b2t4.c1)
3085 Join Filter: (b2t1.c1 = b2t3.c1)
3087 Join Filter: (b2t1.c1 = b2t2.c1)
3090 TID Cond: (ctid = '(1,1)'::tid)
3092 -> Tid Scan on t1 b2t1
3093 TID Cond: (ctid = '(1,1)'::tid)
3094 -> Seq Scan on t2 b2t2
3095 Filter: (ctid = '(1,1)'::tid)
3096 -> Tid Scan on t3 b2t3
3097 TID Cond: (ctid = '(1,1)'::tid)
3098 -> Tid Scan on t4 b2t4
3099 TID Cond: (ctid = '(1,1)'::tid)
3103 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3104 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3106 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3109 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3111 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3117 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3119 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3124 -----------------------------------------------------------------
3128 Join Filter: (b1t1.c1 = b1t4.c1)
3130 Join Filter: (b1t1.c1 = b1t3.c1)
3132 Join Filter: (b1t1.c1 = b1t2.c1)
3133 -> Tid Scan on t1 b1t1
3134 TID Cond: (ctid = '(1,1)'::tid)
3135 -> Seq Scan on t2 b1t2
3136 Filter: (ctid = '(1,1)'::tid)
3137 -> Tid Scan on t3 b1t3
3138 TID Cond: (ctid = '(1,1)'::tid)
3139 -> Tid Scan on t4 b1t4
3140 TID Cond: (ctid = '(1,1)'::tid)
3142 TID Cond: (ctid = '(1,1)'::tid)
3148 Join Filter: (b2t1.c1 = b2t4.c1)
3150 Join Filter: (b2t1.c1 = b2t3.c1)
3152 Join Filter: (b2t1.c1 = b2t2.c1)
3153 -> Tid Scan on t1 b2t1
3154 TID Cond: (ctid = '(1,1)'::tid)
3155 -> Seq Scan on t2 b2t2
3156 Filter: (ctid = '(1,1)'::tid)
3157 -> Tid Scan on t3 b2t3
3158 TID Cond: (ctid = '(1,1)'::tid)
3159 -> Tid Scan on t4 b2t4
3160 TID Cond: (ctid = '(1,1)'::tid)
3162 TID Cond: (ctid = '(1,1)'::tid)
3167 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3169 -----------------------------------------------------------------
3172 Join Filter: (t1.c1 = t4.c1)
3174 Join Filter: (t1.c1 = t3.c1)
3176 Join Filter: (t1.c1 = t2.c1)
3179 TID Cond: (ctid = '(1,1)'::tid)
3182 TID Cond: (ctid = '(1,1)'::tid)
3184 Filter: (ctid = '(1,1)'::tid)
3186 TID Cond: (ctid = '(1,1)'::tid)
3188 TID Cond: (ctid = '(1,1)'::tid)
3192 Join Filter: (t1.c1 = t4.c1)
3194 Join Filter: (t1.c1 = t3.c1)
3196 Join Filter: (t1.c1 = t2.c1)
3199 TID Cond: (ctid = '(1,1)'::tid)
3202 TID Cond: (ctid = '(1,1)'::tid)
3204 Filter: (ctid = '(1,1)'::tid)
3206 TID Cond: (ctid = '(1,1)'::tid)
3208 TID Cond: (ctid = '(1,1)'::tid)
3212 Join Filter: (t1.c1 = t4.c1)
3214 Join Filter: (t1.c1 = t3.c1)
3216 Join Filter: (t1.c1 = t2.c1)
3219 TID Cond: (ctid = '(1,1)'::tid)
3222 TID Cond: (ctid = '(1,1)'::tid)
3224 Filter: (ctid = '(1,1)'::tid)
3226 TID Cond: (ctid = '(1,1)'::tid)
3228 TID Cond: (ctid = '(1,1)'::tid)
3231 /*+ Leading(t4 t3 t2 t1 r3) */
3232 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3235 Leading(t4 t3 t2 t1 r3)
3242 Leading(t4 t3 t2 t1 r3)
3249 Leading(t4 t3 t2 t1 r3)
3255 -----------------------------------------------------------------
3259 Join Filter: (t2.c1 = t1.c1)
3261 Join Filter: (t3.c1 = t2.c1)
3263 Join Filter: (t3.c1 = t4.c1)
3265 TID Cond: (ctid = '(1,1)'::tid)
3267 TID Cond: (ctid = '(1,1)'::tid)
3269 Filter: (ctid = '(1,1)'::tid)
3271 TID Cond: (ctid = '(1,1)'::tid)
3273 TID Cond: (ctid = '(1,1)'::tid)
3279 Join Filter: (t2.c1 = t1.c1)
3281 Join Filter: (t3.c1 = t2.c1)
3283 Join Filter: (t3.c1 = t4.c1)
3285 TID Cond: (ctid = '(1,1)'::tid)
3287 TID Cond: (ctid = '(1,1)'::tid)
3289 Filter: (ctid = '(1,1)'::tid)
3291 TID Cond: (ctid = '(1,1)'::tid)
3293 TID Cond: (ctid = '(1,1)'::tid)
3299 Join Filter: (t2.c1 = t1.c1)
3301 Join Filter: (t3.c1 = t2.c1)
3303 Join Filter: (t3.c1 = t4.c1)
3305 TID Cond: (ctid = '(1,1)'::tid)
3307 TID Cond: (ctid = '(1,1)'::tid)
3309 Filter: (ctid = '(1,1)'::tid)
3311 TID Cond: (ctid = '(1,1)'::tid)
3313 TID Cond: (ctid = '(1,1)'::tid)
3317 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3319 -----------------------------------------------------------------
3322 Join Filter: (b1t1.c1 = b1t4.c1)
3324 Join Filter: (b1t1.c1 = b1t3.c1)
3326 Join Filter: (b1t1.c1 = b1t2.c1)
3329 TID Cond: (ctid = '(1,1)'::tid)
3331 -> Tid Scan on t1 b1t1
3332 TID Cond: (ctid = '(1,1)'::tid)
3333 -> Seq Scan on t2 b1t2
3334 Filter: (ctid = '(1,1)'::tid)
3335 -> Tid Scan on t3 b1t3
3336 TID Cond: (ctid = '(1,1)'::tid)
3337 -> Tid Scan on t4 b1t4
3338 TID Cond: (ctid = '(1,1)'::tid)
3342 Join Filter: (b2t1.c1 = b2t4.c1)
3344 Join Filter: (b2t1.c1 = b2t3.c1)
3346 Join Filter: (b2t1.c1 = b2t2.c1)
3349 TID Cond: (ctid = '(1,1)'::tid)
3351 -> Tid Scan on t1 b2t1
3352 TID Cond: (ctid = '(1,1)'::tid)
3353 -> Seq Scan on t2 b2t2
3354 Filter: (ctid = '(1,1)'::tid)
3355 -> Tid Scan on t3 b2t3
3356 TID Cond: (ctid = '(1,1)'::tid)
3357 -> Tid Scan on t4 b2t4
3358 TID Cond: (ctid = '(1,1)'::tid)
3362 Join Filter: (b3t1.c1 = b3t4.c1)
3364 Join Filter: (b3t1.c1 = b3t3.c1)
3366 Join Filter: (b3t1.c1 = b3t2.c1)
3369 TID Cond: (ctid = '(1,1)'::tid)
3371 -> Tid Scan on t1 b3t1
3372 TID Cond: (ctid = '(1,1)'::tid)
3373 -> Seq Scan on t2 b3t2
3374 Filter: (ctid = '(1,1)'::tid)
3375 -> Tid Scan on t3 b3t3
3376 TID Cond: (ctid = '(1,1)'::tid)
3377 -> Tid Scan on t4 b3t4
3378 TID Cond: (ctid = '(1,1)'::tid)
3382 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3383 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3384 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3386 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3389 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3391 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3392 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3398 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3400 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3401 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3407 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3409 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3410 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3415 -----------------------------------------------------------------
3419 Join Filter: (b1t1.c1 = b1t4.c1)
3421 Join Filter: (b1t1.c1 = b1t3.c1)
3423 Join Filter: (b1t1.c1 = b1t2.c1)
3424 -> Tid Scan on t1 b1t1
3425 TID Cond: (ctid = '(1,1)'::tid)
3426 -> Seq Scan on t2 b1t2
3427 Filter: (ctid = '(1,1)'::tid)
3428 -> Tid Scan on t3 b1t3
3429 TID Cond: (ctid = '(1,1)'::tid)
3430 -> Tid Scan on t4 b1t4
3431 TID Cond: (ctid = '(1,1)'::tid)
3433 TID Cond: (ctid = '(1,1)'::tid)
3439 Join Filter: (b2t1.c1 = b2t4.c1)
3441 Join Filter: (b2t1.c1 = b2t3.c1)
3443 Join Filter: (b2t1.c1 = b2t2.c1)
3444 -> Tid Scan on t1 b2t1
3445 TID Cond: (ctid = '(1,1)'::tid)
3446 -> Seq Scan on t2 b2t2
3447 Filter: (ctid = '(1,1)'::tid)
3448 -> Tid Scan on t3 b2t3
3449 TID Cond: (ctid = '(1,1)'::tid)
3450 -> Tid Scan on t4 b2t4
3451 TID Cond: (ctid = '(1,1)'::tid)
3453 TID Cond: (ctid = '(1,1)'::tid)
3459 Join Filter: (b3t1.c1 = b3t4.c1)
3461 Join Filter: (b3t1.c1 = b3t3.c1)
3463 Join Filter: (b3t1.c1 = b3t2.c1)
3464 -> Tid Scan on t1 b3t1
3465 TID Cond: (ctid = '(1,1)'::tid)
3466 -> Seq Scan on t2 b3t2
3467 Filter: (ctid = '(1,1)'::tid)
3468 -> Tid Scan on t3 b3t3
3469 TID Cond: (ctid = '(1,1)'::tid)
3470 -> Tid Scan on t4 b3t4
3471 TID Cond: (ctid = '(1,1)'::tid)
3473 TID Cond: (ctid = '(1,1)'::tid)
3478 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3480 ------------------------------------
3482 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3483 -> Seq Scan on t1 v1t1
3485 -> Seq Scan on t1 v1t1_1
3488 /*+Leading(v1t1 v1t1)*/
3489 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3490 INFO: pg_hint_plan: hint syntax error at or near "Leading(v1t1 v1t1)"
3491 DETAIL: Relation name "v1t1" is ambiguous.
3500 ------------------------------------
3502 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3503 -> Seq Scan on t1 v1t1
3505 -> Seq Scan on t1 v1t1_1
3509 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3511 -----------------------------------
3513 Hash Cond: (v1t1.c1 = v1t1_.c1)
3514 -> Seq Scan on t1 v1t1
3516 -> Seq Scan on t1 v1t1_
3519 /*+Leading(v1t1 v1t1_)*/
3520 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3529 -----------------------------------
3531 Hash Cond: (v1t1.c1 = v1t1_.c1)
3532 -> Seq Scan on t1 v1t1
3534 -> Seq Scan on t1 v1t1_
3538 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3540 ------------------------------------
3542 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3543 -> Seq Scan on t1 r4t1
3545 -> Seq Scan on t1 r4t1_1
3548 /*+Leading(r4t1 r4t1)*/
3549 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3550 INFO: pg_hint_plan: hint syntax error at or near "Leading(r4t1 r4t1)"
3551 DETAIL: Relation name "r4t1" is ambiguous.
3560 ------------------------------------
3562 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3563 -> Seq Scan on t1 r4t1
3565 -> Seq Scan on t1 r4t1_1
3569 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3571 ----------------------------------
3573 Hash Cond: (r4t1.c1 = r5t1.c1)
3574 -> Seq Scan on t1 r4t1
3576 -> Seq Scan on t1 r5t1
3579 /*+Leading(r4t1 r5t1)*/
3580 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3589 ----------------------------------
3591 Hash Cond: (r4t1.c1 = r5t1.c1)
3592 -> Seq Scan on t1 r4t1
3594 -> Seq Scan on t1 r5t1
3598 ---- No. L-2-4 VALUES clause
3601 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;
3603 -------------------------------------------------
3606 Hash Cond: (t2.c1 = "*VALUES*".column1)
3609 -> Values Scan on "*VALUES*"
3610 -> Index Scan using t1_i1 on t1
3611 Index Cond: (c1 = t2.c1)
3614 /*+ Leading(t3 t1 t2) */
3615 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;
3624 -------------------------------------------------
3627 Hash Cond: (t2.c1 = "*VALUES*".column1)
3630 -> Values Scan on "*VALUES*"
3631 -> Index Scan using t1_i1 on t1
3632 Index Cond: (c1 = t2.c1)
3635 /*+ Leading(*VALUES* t1 t2) */
3636 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;
3639 Leading(*VALUES* t1 t2)
3645 -----------------------------------------------------
3648 -> Values Scan on "*VALUES*"
3649 -> Index Scan using t1_i1 on t1
3650 Index Cond: (c1 = "*VALUES*".column1)
3651 -> Index Scan using t2_i1 on t2
3652 Index Cond: (c1 = t1.c1)
3656 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;
3658 -------------------------------------------------------
3661 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3663 Hash Cond: (t2.c1 = "*VALUES*".column1)
3666 -> Values Scan on "*VALUES*"
3668 -> Values Scan on "*VALUES*_1"
3669 -> Index Scan using t1_i1 on t1
3670 Index Cond: (c1 = t2.c1)
3673 /*+ Leading(t4 t3 t2 t1) */
3674 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;
3678 Leading(t4 t3 t2 t1)
3683 -------------------------------------------------------
3686 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3688 Hash Cond: (t2.c1 = "*VALUES*".column1)
3691 -> Values Scan on "*VALUES*"
3693 -> Values Scan on "*VALUES*_1"
3694 -> Index Scan using t1_i1 on t1
3695 Index Cond: (c1 = t2.c1)
3698 /*+ Leading(*VALUES* t3 t2 t1) */
3699 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;
3700 INFO: pg_hint_plan: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) "
3701 DETAIL: Relation name "*VALUES*" is ambiguous.
3707 Leading(*VALUES* t3 t2 t1)
3710 -------------------------------------------------------
3713 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3715 Hash Cond: (t2.c1 = "*VALUES*".column1)
3718 -> Values Scan on "*VALUES*"
3720 -> Values Scan on "*VALUES*_1"
3721 -> Index Scan using t1_i1 on t1
3722 Index Cond: (c1 = t2.c1)
3726 ---- No. L-3-1 leading the order of table joins
3728 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3730 ------------------------------------------
3732 Merge Cond: (t1.c1 = t2.c1)
3734 Merge Cond: (t1.c1 = t3.c1)
3735 -> Index Scan using t1_i1 on t1
3736 -> Index Scan using t3_i1 on t3
3743 /*+Leading(t3 t1 t2)*/
3744 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3753 ------------------------------------------
3755 Merge Cond: (t1.c1 = t2.c1)
3757 Merge Cond: (t1.c1 = t3.c1)
3758 -> Index Scan using t1_i1 on t1
3759 -> Index Scan using t3_i1 on t3
3766 /*+Leading(t1 t2 t3)*/
3767 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3776 ------------------------------------------
3779 Merge Cond: (t1.c1 = t2.c1)
3780 -> Index Scan using t1_i1 on t1
3784 -> Index Scan using t3_i1 on t3
3785 Index Cond: (c1 = t1.c1)
3789 ---- No. L-3-2 GUC parameter to disable hints
3791 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3793 ------------------------------------------
3795 Merge Cond: (t1.c1 = t2.c1)
3797 Merge Cond: (t1.c1 = t3.c1)
3798 -> Index Scan using t1_i1 on t1
3799 -> Index Scan using t3_i1 on t3
3806 Set geqo_threshold = 3;
3808 /*+Leading(t1 t2 t3)*/
3809 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3818 ------------------------------------------
3820 Merge Cond: (t1.c1 = t2.c1)
3822 Merge Cond: (t1.c1 = t3.c1)
3823 -> Index Scan using t1_i1 on t1
3824 -> Index Scan using t3_i1 on t3
3830 Reset geqo_threshold;
3832 Set geqo_threshold = 4;
3834 /*+Leading(t1 t2 t3)*/
3835 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3844 ------------------------------------------
3847 Merge Cond: (t1.c1 = t2.c1)
3848 -> Index Scan using t1_i1 on t1
3852 -> Index Scan using t3_i1 on t3
3853 Index Cond: (c1 = t1.c1)
3856 Reset geqo_threshold;
3858 Set from_collapse_limit = 2;
3859 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3861 -----------------------------------------------------
3863 Hash Cond: (t1.c1 = v2t1.c1)
3867 Merge Cond: (v2t1.c1 = v2t2.c1)
3868 -> Index Scan using t1_i1 on t1 v2t1
3871 -> Seq Scan on t2 v2t2
3874 /*+Leading(t1 v2t1 v2t2)*/
3875 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3878 Leading(t1 v2t1 v2t2)
3884 -----------------------------------------------------
3886 Hash Cond: (t1.c1 = v2t1.c1)
3890 Merge Cond: (v2t1.c1 = v2t2.c1)
3891 -> Index Scan using t1_i1 on t1 v2t1
3894 -> Seq Scan on t2 v2t2
3897 Reset from_collapse_limit;
3899 Set from_collapse_limit = 3;
3900 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3902 -----------------------------------------------
3904 Merge Cond: (v2t1.c1 = v2t2.c1)
3906 Merge Cond: (t1.c1 = v2t1.c1)
3907 -> Index Scan using t1_i1 on t1
3908 -> Index Scan using t1_i1 on t1 v2t1
3911 -> Seq Scan on t2 v2t2
3914 /*+Leading(v2t1 v2t2 t1)*/
3915 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.v2 WHERE t1.c1 = v2.c1;
3918 Leading(v2t1 v2t2 t1)
3924 -----------------------------------------------------
3926 Hash Cond: (t1.c1 = v2t1.c1)
3930 Merge Cond: (v2t1.c1 = v2t2.c1)
3931 -> Index Scan using t1_i1 on t1 v2t1
3934 -> Seq Scan on t2 v2t2
3937 Reset from_collapse_limit;
3939 Set join_collapse_limit = 2;
3940 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3941 JOIN s1.t2 ON (t3.c1 = t2.c1)
3942 JOIN s1.t1 ON (t1.c1 = t3.c1);
3944 ------------------------------------------
3946 Hash Cond: (t1.c1 = t3.c1)
3950 Hash Cond: (t3.c1 = t2.c1)
3956 /*+Leading(t1 t2 t3)*/
3957 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3958 JOIN s1.t2 ON (t3.c1 = t2.c1)
3959 JOIN s1.t1 ON (t1.c1 = t3.c1);
3968 ------------------------------------------
3970 Hash Cond: (t1.c1 = t3.c1)
3974 Hash Cond: (t3.c1 = t2.c1)
3980 Reset join_collapse_limit;
3982 Set join_collapse_limit = 3;
3983 EXPLAIN (COSTS false) SELECT * FROM s1.t3
3984 JOIN s1.t2 ON (t3.c1 = t2.c1)
3985 JOIN s1.t1 ON (t1.c1 = t3.c1);
3987 ------------------------------------------
3989 Join Filter: (t2.c1 = t3.c1)
3991 Merge Cond: (t1.c1 = t2.c1)
3992 -> Index Scan using t1_i1 on t1
3996 -> Index Scan using t3_i1 on t3
3997 Index Cond: (c1 = t1.c1)
4000 /*+Leading(t1 t2 t3)*/
4001 EXPLAIN (COSTS false) SELECT * FROM s1.t3
4002 JOIN s1.t2 ON (t3.c1 = t2.c1)
4003 JOIN s1.t1 ON (t1.c1 = t3.c1);
4012 ------------------------------------------
4014 Join Filter: (t2.c1 = t3.c1)
4016 Merge Cond: (t1.c1 = t2.c1)
4017 -> Index Scan using t1_i1 on t1
4021 -> Index Scan using t3_i1 on t3
4022 Index Cond: (c1 = t1.c1)
4025 Reset join_collapse_limit;
4027 ---- No. L-3-3 join between parents or between children
4030 /*+Leading(t1 t2 t3)*/
4031 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4032 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4033 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4042 -------------------------------------------------
4044 Hash Cond: (t1.c1 = t3.c1)
4046 Hash Cond: (t1.c1 = t2.c1)
4048 -> Seq Scan on p2c1 t1
4049 -> Seq Scan on p2c1c1 t1_1
4050 -> Seq Scan on p2c1c2 t1_2
4053 -> Seq Scan on p2c2 t2
4054 -> Seq Scan on p2c2c1 t2_1
4055 -> Seq Scan on p2c2c2 t2_2
4058 -> Seq Scan on p2c3 t3
4059 -> Seq Scan on p2c3c1 t3_1
4060 -> Seq Scan on p2c3c2 t3_2
4064 /*+Leading(p2c1c1 p2c2c1 p2c3c1)*/
4065 EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
4066 JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
4067 JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
4071 Leading(p2c1c1 p2c2c1 p2c3c1)
4076 -------------------------------------------------
4078 Hash Cond: (t1.c1 = t3.c1)
4080 Hash Cond: (t1.c1 = t2.c1)
4082 -> Seq Scan on p2c1 t1
4083 -> Seq Scan on p2c1c1 t1_1
4084 -> Seq Scan on p2c1c2 t1_2
4087 -> Seq Scan on p2c2 t2
4088 -> Seq Scan on p2c2c1 t2_1
4089 -> Seq Scan on p2c2c2 t2_2
4092 -> Seq Scan on p2c3 t3
4093 -> Seq Scan on p2c3c1 t3_1
4094 -> Seq Scan on p2c3c2 t3_2
4098 ---- No. L-3-4 conflict leading hint
4101 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4102 JOIN s1.t2 ON (t1.c1 = t2.c1)
4103 JOIN s1.t3 ON (t1.c1 = t3.c1);
4105 ------------------------------------------
4107 Merge Cond: (t1.c1 = t2.c1)
4109 Merge Cond: (t1.c1 = t3.c1)
4110 -> Index Scan using t1_i1 on t1
4111 -> Index Scan using t3_i1 on t3
4117 /*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4118 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4119 JOIN s1.t2 ON (t1.c1 = t2.c1)
4120 JOIN s1.t3 ON (t1.c1 = t3.c1);
4121 INFO: pg_hint_plan: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4122 DETAIL: Conflict leading hint.
4132 ------------------------------------------
4135 Merge Cond: (t1.c1 = t2.c1)
4136 -> Index Scan using t1_i1 on t1
4140 -> Index Scan using t3_i1 on t3
4141 Index Cond: (c1 = t1.c1)
4145 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
4146 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4147 JOIN s1.t2 ON (t1.c1 = t2.c1)
4148 JOIN s1.t3 ON (t1.c1 = t3.c1);
4149 INFO: pg_hint_plan: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
4150 DETAIL: Conflict leading hint.
4151 INFO: pg_hint_plan: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
4152 DETAIL: Conflict leading hint.
4163 ------------------------------------------
4166 Merge Cond: (t1.c1 = t2.c1)
4167 -> Index Scan using t1_i1 on t1
4171 -> Index Scan using t3_i1 on t3
4172 Index Cond: (c1 = t1.c1)
4176 /*+Leading(t2 t3 t1)Leading()*/
4177 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4178 JOIN s1.t2 ON (t1.c1 = t2.c1)
4179 JOIN s1.t3 ON (t1.c1 = t3.c1);
4180 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4181 DETAIL: Leading hint requires at least two relations.
4191 ------------------------------------------
4193 Merge Cond: (t1.c1 = t2.c1)
4194 -> Index Scan using t1_i1 on t1
4198 Hash Cond: (t3.c1 = t2.c1)
4205 /*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
4206 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4207 JOIN s1.t2 ON (t1.c1 = t2.c1)
4208 JOIN s1.t3 ON (t1.c1 = t3.c1);
4209 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4210 DETAIL: Leading hint requires at least two relations.
4211 INFO: pg_hint_plan: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
4212 DETAIL: Conflict leading hint.
4223 ------------------------------------------
4225 Merge Cond: (t1.c1 = t2.c1)
4226 -> Index Scan using t1_i1 on t1
4230 Hash Cond: (t3.c1 = t2.c1)
4237 ---- No. L-3-5 hint state output
4241 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4242 JOIN s1.t2 ON (t1.c1 = t2.c1)
4243 JOIN s1.t3 ON (t1.c1 = t3.c1);
4244 INFO: pg_hint_plan: hint syntax error at or near "Leading()"
4245 DETAIL: Leading hint requires at least two relations.
4254 ------------------------------------------
4256 Merge Cond: (t1.c1 = t2.c1)
4258 Merge Cond: (t1.c1 = t3.c1)
4259 -> Index Scan using t1_i1 on t1
4260 -> Index Scan using t3_i1 on t3
4268 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4269 JOIN s1.t2 ON (t1.c1 = t2.c1)
4270 JOIN s1.t3 ON (t1.c1 = t3.c1);
4271 INFO: pg_hint_plan: hint syntax error at or near "Leading(t1)"
4272 DETAIL: Leading hint requires at least two relations.
4281 ------------------------------------------
4283 Merge Cond: (t1.c1 = t2.c1)
4285 Merge Cond: (t1.c1 = t3.c1)
4286 -> Index Scan using t1_i1 on t1
4287 -> Index Scan using t3_i1 on t3
4295 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4296 JOIN s1.t2 ON (t1.c1 = t2.c1)
4297 JOIN s1.t3 ON (t1.c1 = t3.c1);
4306 ------------------------------------------
4309 Merge Cond: (t1.c1 = t2.c1)
4310 -> Index Scan using t1_i1 on t1
4314 -> Index Scan using t3_i1 on t3
4315 Index Cond: (c1 = t1.c1)
4319 /*+Leading(t1 t2 t3)*/
4320 EXPLAIN (COSTS false) SELECT * FROM s1.t1
4321 JOIN s1.t2 ON (t1.c1 = t2.c1)
4322 JOIN s1.t3 ON (t1.c1 = t3.c1);
4331 ------------------------------------------
4334 Merge Cond: (t1.c1 = t2.c1)
4335 -> Index Scan using t1_i1 on t1
4339 -> Index Scan using t3_i1 on t3
4340 Index Cond: (c1 = t1.c1)
4344 ---- No. L-3-6 specified Inner/Outer side
4348 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;
4349 INFO: pg_hint_plan: hint syntax error at or near "Leading((t2))"
4350 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4359 ------------------------------------------------
4361 Join Filter: (t1.c1 = t4.c1)
4363 Merge Cond: (t1.c1 = t2.c1)
4365 Merge Cond: (t1.c1 = t3.c1)
4366 -> Index Scan using t1_i1 on t1
4367 -> Index Scan using t3_i1 on t3
4371 -> Index Scan using t4_i1 on t4
4372 Index Cond: (c1 = t3.c1)
4376 /*+Leading((t2 t3))*/
4377 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;
4386 ------------------------------------------------
4388 Join Filter: (t1.c1 = t4.c1)
4390 Join Filter: (t2.c1 = t1.c1)
4392 -> Index Scan using t2_i1 on t2
4393 -> Index Scan using t3_i1 on t3
4394 Index Cond: (c1 = t2.c1)
4395 -> Index Scan using t1_i1 on t1
4396 Index Cond: (c1 = t3.c1)
4397 -> Index Scan using t4_i1 on t4
4398 Index Cond: (c1 = t3.c1)
4402 /*+Leading((t2 t3 t4))*/
4403 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;
4404 INFO: pg_hint_plan: hint syntax error at or near "Leading((t2 t3 t4))"
4405 DETAIL: Leading hint requires two sets of relations when parentheses nests.
4414 ------------------------------------------------
4416 Join Filter: (t1.c1 = t4.c1)
4418 Merge Cond: (t1.c1 = t2.c1)
4420 Merge Cond: (t1.c1 = t3.c1)
4421 -> Index Scan using t1_i1 on t1
4422 -> Index Scan using t3_i1 on t3
4426 -> Index Scan using t4_i1 on t4
4427 Index Cond: (c1 = t3.c1)
4431 /*+Leading(((t1 t2) (t3 t4)))*/
4432 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
4435 Leading(((t1 t2) (t3 t4)))
4441 ------------------------------------------
4443 Hash Cond: (t1.c1 = t3.c1)
4445 Merge Cond: (t1.c1 = t2.c1)
4446 -> Index Scan using t1_i1 on t1
4452 Hash Cond: (t3.c1 = t4.c1)
4459 /*+Leading((((t1 t3) t4) t2)))*/
4460 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;
4461 INFO: pg_hint_plan: hint syntax error at or near ")"
4462 DETAIL: Unrecognized hint keyword ")".
4465 Leading((((t1 t3) t4) t2))
4471 ------------------------------------------------
4473 Merge Cond: (t1.c1 = t2.c1)
4475 Merge Cond: (t1.c1 = t4.c1)
4477 Merge Cond: (t1.c1 = t3.c1)
4478 -> Index Scan using t1_i1 on t1
4479 -> Index Scan using t3_i1 on t3
4480 -> Index Scan using t4_i1 on t4
4487 /*+Leading((t1 (t3 (t4 t2))))*/
4488 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;
4491 Leading((t1 (t3 (t4 t2))))
4497 ------------------------------------------------------
4499 Merge Cond: (t1.c1 = t2.c1)
4500 -> Index Scan using t1_i1 on t1
4504 Hash Cond: (t3.c1 = t2.c1)
4508 Hash Cond: (t4.c1 = t2.c1)