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;
7 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
9 \! sql/maskout.sh results/ut-R.tmpout
11 ---------------------------------------------------------------------------
12 Merge Join (cost=xxx..xxx rows=100 width=xxx)
13 Merge Cond: (t1.c1 = t2.c1)
14 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
15 -> Sort (cost=xxx..xxx rows=100 width=xxx)
17 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
20 ---- No. R-1-1 specified pattern of the object name
23 \o results/ut-R.tmpout
25 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
34 \! sql/maskout.sh results/ut-R.tmpout
36 ---------------------------------------------------------------------------
37 Merge Join (cost=xxx..xxx rows=1 width=xxx)
38 Merge Cond: (t1.c1 = t2.c1)
39 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
40 -> Sort (cost=xxx..xxx rows=100 width=xxx)
42 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
45 \o results/ut-R.tmpout
47 EXPLAIN SELECT * FROM s1.t1 t_1, s1.t2 t_2 WHERE t_1.c1 = t_2.c1;
56 \! sql/maskout.sh results/ut-R.tmpout
58 -------------------------------------------------------------------------------
59 Merge Join (cost=xxx..xxx rows=100 width=xxx)
60 Merge Cond: (t_1.c1 = t_2.c1)
61 -> Index Scan using t1_i1 on t1 t_1 (cost=xxx..xxx rows=1000 width=xxx)
62 -> Sort (cost=xxx..xxx rows=100 width=xxx)
64 -> Seq Scan on t2 t_2 (cost=xxx..xxx rows=100 width=xxx)
67 \o results/ut-R.tmpout
69 EXPLAIN SELECT * FROM s1.t1 t_1, s1.t2 t_2 WHERE t_1.c1 = t_2.c1;
78 \! sql/maskout.sh results/ut-R.tmpout
80 -------------------------------------------------------------------------------
81 Merge Join (cost=xxx..xxx rows=1 width=xxx)
82 Merge Cond: (t_1.c1 = t_2.c1)
83 -> Index Scan using t1_i1 on t1 t_1 (cost=xxx..xxx rows=1000 width=xxx)
84 -> Sort (cost=xxx..xxx rows=100 width=xxx)
86 -> Seq Scan on t2 t_2 (cost=xxx..xxx rows=100 width=xxx)
89 ---- No. R-1-2 specified schema name in the hint option
92 \o results/ut-R.tmpout
94 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
103 \! sql/maskout.sh results/ut-R.tmpout
105 ---------------------------------------------------------------------------
106 Merge Join (cost=xxx..xxx rows=1 width=xxx)
107 Merge Cond: (t1.c1 = t2.c1)
108 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
109 -> Sort (cost=xxx..xxx rows=100 width=xxx)
111 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
114 \o results/ut-R.tmpout
115 /*+Rows(s1.t1 s1.t2 #1)*/
116 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
125 \! sql/maskout.sh results/ut-R.tmpout
127 ---------------------------------------------------------------------------
128 Merge Join (cost=xxx..xxx rows=100 width=xxx)
129 Merge Cond: (t1.c1 = t2.c1)
130 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
131 -> Sort (cost=xxx..xxx rows=100 width=xxx)
133 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
136 ---- No. R-1-3 table doesn't exist in the hint option
139 \o results/ut-R.tmpout
141 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
150 \! sql/maskout.sh results/ut-R.tmpout
152 ---------------------------------------------------------------------------
153 Merge Join (cost=xxx..xxx rows=1 width=xxx)
154 Merge Cond: (t1.c1 = t2.c1)
155 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
156 -> Sort (cost=xxx..xxx rows=100 width=xxx)
158 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
161 \o results/ut-R.tmpout
163 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
172 \! sql/maskout.sh results/ut-R.tmpout
174 ---------------------------------------------------------------------------
175 Merge Join (cost=xxx..xxx rows=100 width=xxx)
176 Merge Cond: (t1.c1 = t2.c1)
177 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
178 -> Sort (cost=xxx..xxx rows=100 width=xxx)
180 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
183 ---- No. R-1-4 conflict table name
186 \o results/ut-R.tmpout
188 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
197 \! sql/maskout.sh results/ut-R.tmpout
199 ---------------------------------------------------------------------------
200 Merge Join (cost=xxx..xxx rows=1 width=xxx)
201 Merge Cond: (t1.c1 = t2.c1)
202 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
203 -> Sort (cost=xxx..xxx rows=100 width=xxx)
205 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
208 \o results/ut-R.tmpout
209 EXPLAIN SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
211 \! sql/maskout.sh results/ut-R.tmpout
213 ---------------------------------------------------------------------------
214 Merge Join (cost=xxx..xxx rows=100 width=xxx)
215 Merge Cond: (t1.c1 = t1_1.c1)
216 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
217 -> Sort (cost=xxx..xxx rows=100 width=xxx)
219 -> Seq Scan on t1 t1_1 (cost=xxx..xxx rows=100 width=xxx)
221 \o results/ut-R.tmpout
223 EXPLAIN SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
224 INFO: pg_hint_plan: hint syntax error at or near "Rows(t1 t1 #1)"
225 DETAIL: Relation name "t1" is ambiguous.
234 \! sql/maskout.sh results/ut-R.tmpout
236 ---------------------------------------------------------------------------
237 Merge Join (cost=xxx..xxx rows=100 width=xxx)
238 Merge Cond: (t1.c1 = t1_1.c1)
239 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
240 -> Sort (cost=xxx..xxx rows=100 width=xxx)
242 -> Seq Scan on t1 t1_1 (cost=xxx..xxx rows=100 width=xxx)
244 \o results/ut-R.tmpout
245 /*+Rows(s1.t1 s2.t1 #1)*/
246 EXPLAIN SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
255 \! sql/maskout.sh results/ut-R.tmpout
257 ---------------------------------------------------------------------------
258 Merge Join (cost=xxx..xxx rows=100 width=xxx)
259 Merge Cond: (t1.c1 = t1_1.c1)
260 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
261 -> Sort (cost=xxx..xxx rows=100 width=xxx)
263 -> Seq Scan on t1 t1_1 (cost=xxx..xxx rows=100 width=xxx)
265 \o results/ut-R.tmpout
266 EXPLAIN SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
268 \! sql/maskout.sh results/ut-R.tmpout
270 ---------------------------------------------------------------------------
271 Merge Join (cost=xxx..xxx rows=100 width=xxx)
272 Merge Cond: (t1.c1 = s2t1.c1)
273 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
274 -> Sort (cost=xxx..xxx rows=100 width=xxx)
276 -> Seq Scan on t1 s2t1 (cost=xxx..xxx rows=100 width=xxx)
278 \o results/ut-R.tmpout
279 /*+Rows(t1 s2t1 #1)*/
280 EXPLAIN SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
289 \! sql/maskout.sh results/ut-R.tmpout
291 ---------------------------------------------------------------------------
292 Merge Join (cost=xxx..xxx rows=1 width=xxx)
293 Merge Cond: (t1.c1 = s2t1.c1)
294 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
295 -> Sort (cost=xxx..xxx rows=100 width=xxx)
297 -> Seq Scan on t1 s2t1 (cost=xxx..xxx rows=100 width=xxx)
300 \o results/ut-R.tmpout
301 EXPLAIN SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
303 \! sql/maskout.sh results/ut-R.tmpout
305 --------------------------------------------------------------------------------------------------
306 Merge Join (cost=xxx..xxx rows=100 width=xxx)
307 Merge Cond: (t1.c1 = t2.c1)
308 InitPlan 1 (returns $0)
309 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
310 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
311 Merge Cond: (t1_1.c1 = t2_1.c1)
312 -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx..xxx rows=1000 width=xxx)
313 -> Sort (cost=xxx..xxx rows=100 width=xxx)
315 -> Seq Scan on t2 t2_1 (cost=xxx..xxx rows=100 width=xxx)
316 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
317 -> Sort (cost=xxx..xxx rows=100 width=xxx)
319 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
321 \o results/ut-R.tmpout
323 EXPLAIN SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
332 \! sql/maskout.sh results/ut-R.tmpout
334 --------------------------------------------------------------------------------------------------
335 Merge Join (cost=xxx..xxx rows=100 width=xxx)
336 Merge Cond: (t1.c1 = t2.c1)
337 InitPlan 1 (returns $0)
338 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
339 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
340 Merge Cond: (t1_1.c1 = t2_1.c1)
341 -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx..xxx rows=1000 width=xxx)
342 -> Sort (cost=xxx..xxx rows=100 width=xxx)
344 -> Seq Scan on t2 t2_1 (cost=xxx..xxx rows=100 width=xxx)
345 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
346 -> Sort (cost=xxx..xxx rows=100 width=xxx)
348 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
350 \o results/ut-R.tmpout
351 /*+Rows(st1 st2 #1)Rows(t1 t2 #1)*/
352 EXPLAIN SELECT *, (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2 WHERE st1.c1 = st2.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
362 \! sql/maskout.sh results/ut-R.tmpout
364 -------------------------------------------------------------------------------------------------
365 Merge Join (cost=xxx..xxx rows=1 width=xxx)
366 Merge Cond: (t1.c1 = t2.c1)
367 InitPlan 1 (returns $0)
368 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
369 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
370 Merge Cond: (st1.c1 = st2.c1)
371 -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx..xxx rows=1000 width=xxx)
372 -> Sort (cost=xxx..xxx rows=100 width=xxx)
374 -> Seq Scan on t2 st2 (cost=xxx..xxx rows=100 width=xxx)
375 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
376 -> Sort (cost=xxx..xxx rows=100 width=xxx)
378 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
381 ---- No. R-1-5 conflict table name
384 \o results/ut-R.tmpout
386 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
395 \! sql/maskout.sh results/ut-R.tmpout
397 ---------------------------------------------------------------------------
398 Merge Join (cost=xxx..xxx rows=1 width=xxx)
399 Merge Cond: (t1.c1 = t2.c1)
400 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
401 -> Sort (cost=xxx..xxx rows=100 width=xxx)
403 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
406 \o results/ut-R.tmpout
408 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
409 INFO: pg_hint_plan: hint syntax error at or near "Rows(t1 t1 #1)"
410 DETAIL: Relation name "t1" is duplicated.
419 \! sql/maskout.sh results/ut-R.tmpout
421 ---------------------------------------------------------------------------
422 Merge Join (cost=xxx..xxx rows=100 width=xxx)
423 Merge Cond: (t1.c1 = t2.c1)
424 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
425 -> Sort (cost=xxx..xxx rows=100 width=xxx)
427 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
430 \o results/ut-R.tmpout
432 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
433 INFO: pg_hint_plan: hint syntax error at or near "(t1 t1)(t2 t2)"
434 DETAIL: Unrecognized hint keyword "".
436 \! sql/maskout.sh results/ut-R.tmpout
438 ---------------------------------------------------------------------------
439 Merge Join (cost=xxx..xxx rows=100 width=xxx)
440 Merge Cond: (t1.c1 = t2.c1)
441 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
442 -> Sort (cost=xxx..xxx rows=100 width=xxx)
444 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
446 \o results/ut-R.tmpout
447 EXPLAIN SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
449 \! sql/maskout.sh results/ut-R.tmpout
451 ---------------------------------------------------------------------------------
452 Merge Join (cost=xxx..xxx rows=100 width=xxx)
453 Merge Cond: (t1.c1 = t2.c1)
454 -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
455 Merge Cond: (t1.c1 = t3.c1)
456 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
457 -> Index Scan using t3_i1 on t3 (cost=xxx..xxx rows=1130 width=xxx)
458 -> Sort (cost=xxx..xxx rows=100 width=xxx)
460 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
462 \o results/ut-R.tmpout
464 EXPLAIN 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;
465 INFO: pg_hint_plan: hint syntax error at or near "(t1 t2 t1 t2)"
466 DETAIL: Unrecognized hint keyword "".
468 \! sql/maskout.sh results/ut-R.tmpout
470 ---------------------------------------------------------------------------------------
471 Nested Loop (cost=xxx..xxx rows=100 width=xxx)
472 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
473 Merge Cond: (t1.c1 = t2.c1)
474 -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
475 Merge Cond: (t1.c1 = t3.c1)
476 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
477 -> Index Scan using t3_i1 on t3 (cost=xxx..xxx rows=1130 width=xxx)
478 -> Sort (cost=xxx..xxx rows=100 width=xxx)
480 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
481 -> Index Scan using t4_i1 on t4 (cost=xxx..xxx rows=1 width=xxx)
482 Index Cond: (c1 = t1.c1)
485 ---- No. R-1-6 object type for the hint
488 \o results/ut-R.tmpout
490 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
499 \! sql/maskout.sh results/ut-R.tmpout
501 ---------------------------------------------------------------------------
502 Merge Join (cost=xxx..xxx rows=1 width=xxx)
503 Merge Cond: (t1.c1 = t2.c1)
504 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
505 -> Sort (cost=xxx..xxx rows=100 width=xxx)
507 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
510 \o results/ut-R.tmpout
511 EXPLAIN SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
513 \! sql/maskout.sh results/ut-R.tmpout
515 ------------------------------------------------------------------------------
516 Hash Join (cost=xxx..xxx rows=301 width=xxx)
517 Hash Cond: (t1.c1 = t2.c1)
518 -> Append (cost=xxx..xxx rows=301 width=xxx)
519 -> Seq Scan on p1 t1_1 (cost=xxx..xxx rows=1 width=xxx)
520 -> Seq Scan on p1c1 t1_2 (cost=xxx..xxx rows=100 width=xxx)
521 -> Seq Scan on p1c2 t1_3 (cost=xxx..xxx rows=100 width=xxx)
522 -> Seq Scan on p1c3 t1_4 (cost=xxx..xxx rows=100 width=xxx)
523 -> Hash (cost=xxx..xxx rows=301 width=xxx)
524 -> Append (cost=xxx..xxx rows=301 width=xxx)
525 -> Seq Scan on p1 t2_1 (cost=xxx..xxx rows=1 width=xxx)
526 -> Seq Scan on p1c1 t2_2 (cost=xxx..xxx rows=100 width=xxx)
527 -> Seq Scan on p1c2 t2_3 (cost=xxx..xxx rows=100 width=xxx)
528 -> Seq Scan on p1c3 t2_4 (cost=xxx..xxx rows=100 width=xxx)
530 \o results/ut-R.tmpout
532 EXPLAIN SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
541 \! sql/maskout.sh results/ut-R.tmpout
543 ------------------------------------------------------------------------------
544 Hash Join (cost=xxx..xxx rows=1 width=xxx)
545 Hash Cond: (t1.c1 = t2.c1)
546 -> Append (cost=xxx..xxx rows=301 width=xxx)
547 -> Seq Scan on p1 t1_1 (cost=xxx..xxx rows=1 width=xxx)
548 -> Seq Scan on p1c1 t1_2 (cost=xxx..xxx rows=100 width=xxx)
549 -> Seq Scan on p1c2 t1_3 (cost=xxx..xxx rows=100 width=xxx)
550 -> Seq Scan on p1c3 t1_4 (cost=xxx..xxx rows=100 width=xxx)
551 -> Hash (cost=xxx..xxx rows=301 width=xxx)
552 -> Append (cost=xxx..xxx rows=301 width=xxx)
553 -> Seq Scan on p1 t2_1 (cost=xxx..xxx rows=1 width=xxx)
554 -> Seq Scan on p1c1 t2_2 (cost=xxx..xxx rows=100 width=xxx)
555 -> Seq Scan on p1c2 t2_3 (cost=xxx..xxx rows=100 width=xxx)
556 -> Seq Scan on p1c3 t2_4 (cost=xxx..xxx rows=100 width=xxx)
559 \o results/ut-R.tmpout
560 EXPLAIN SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
562 \! sql/maskout.sh results/ut-R.tmpout
564 -----------------------------------------------------------------------
565 Hash Join (cost=xxx..xxx rows=1130 width=xxx)
566 Hash Cond: (t1.c1 = t2.c1)
567 -> Seq Scan on ul1 t1 (cost=xxx..xxx rows=1130 width=xxx)
568 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
569 -> Seq Scan on ul1 t2 (cost=xxx..xxx rows=1130 width=xxx)
571 \o results/ut-R.tmpout
573 EXPLAIN SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
582 \! sql/maskout.sh results/ut-R.tmpout
584 -----------------------------------------------------------------------
585 Hash Join (cost=xxx..xxx rows=1 width=xxx)
586 Hash Cond: (t1.c1 = t2.c1)
587 -> Seq Scan on ul1 t1 (cost=xxx..xxx rows=1130 width=xxx)
588 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
589 -> Seq Scan on ul1 t2 (cost=xxx..xxx rows=1130 width=xxx)
592 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
593 \o results/ut-R.tmpout
594 EXPLAIN SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
596 \! sql/maskout.sh results/ut-R.tmpout
598 -----------------------------------------------------------------------
599 Hash Join (cost=xxx..xxx rows=1130 width=xxx)
600 Hash Cond: (t1.c1 = t2.c1)
601 -> Seq Scan on tm1 t1 (cost=xxx..xxx rows=1130 width=xxx)
602 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
603 -> Seq Scan on tm1 t2 (cost=xxx..xxx rows=1130 width=xxx)
605 \o results/ut-R.tmpout
607 EXPLAIN SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
616 \! sql/maskout.sh results/ut-R.tmpout
618 -----------------------------------------------------------------------
619 Hash Join (cost=xxx..xxx rows=1 width=xxx)
620 Hash Cond: (t1.c1 = t2.c1)
621 -> Seq Scan on tm1 t1 (cost=xxx..xxx rows=1130 width=xxx)
622 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
623 -> Seq Scan on tm1 t2 (cost=xxx..xxx rows=1130 width=xxx)
626 CREATE TEMP TABLE t_pg_class AS SELECT * from pg_class LIMIT 100;
627 \o results/ut-R.tmpout
628 EXPLAIN SELECT * FROM t_pg_class t1, t_pg_class t2 WHERE t1.oid = t2.oid;
630 \! sql/maskout.sh results/ut-R.tmpout
632 ------------------------------------------------------------------------------
633 Hash Join (cost=xxx..xxx rows=450 width=xxx)
634 Hash Cond: (t1.oid = t2.oid)
635 -> Seq Scan on t_pg_class t1 (cost=xxx..xxx rows=300 width=xxx)
636 -> Hash (cost=xxx..xxx rows=300 width=xxx)
637 -> Seq Scan on t_pg_class t2 (cost=xxx..xxx rows=300 width=xxx)
639 \o results/ut-R.tmpout
641 EXPLAIN SELECT * FROM t_pg_class t1, t_pg_class t2 WHERE t1.oid = t2.oid;
650 \! sql/maskout.sh results/ut-R.tmpout
652 ------------------------------------------------------------------------------
653 Hash Join (cost=xxx..xxx rows=1 width=xxx)
654 Hash Cond: (t1.oid = t2.oid)
655 -> Seq Scan on t_pg_class t1 (cost=xxx..xxx rows=300 width=xxx)
656 -> Hash (cost=xxx..xxx rows=300 width=xxx)
657 -> Seq Scan on t_pg_class t2 (cost=xxx..xxx rows=300 width=xxx)
662 \o results/ut-R.tmpout
663 EXPLAIN SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
665 \! sql/maskout.sh results/ut-R.tmpout
667 -----------------------------------------------------------------
668 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
669 Join Filter: (t1.c1 = t2.c1)
670 -> Function Scan on f1 t1 (cost=xxx..xxx rows=1 width=xxx)
671 -> Function Scan on f1 t2 (cost=xxx..xxx rows=1 width=xxx)
673 \o results/ut-R.tmpout
675 EXPLAIN SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
684 \! sql/maskout.sh results/ut-R.tmpout
686 -----------------------------------------------------------------
687 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
688 Join Filter: (t1.c1 = t2.c1)
689 -> Function Scan on f1 t1 (cost=xxx..xxx rows=1 width=xxx)
690 -> Function Scan on f1 t2 (cost=xxx..xxx rows=1 width=xxx)
693 \o results/ut-R.tmpout
694 EXPLAIN SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
696 \! sql/maskout.sh results/ut-R.tmpout
698 --------------------------------------------------------------------------
699 Hash Join (cost=xxx..xxx rows=3 width=xxx)
700 Hash Cond: (t2.c1 = "*VALUES*".column1)
701 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
702 -> Hash (cost=xxx..xxx rows=3 width=xxx)
703 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=3 width=xxx)
705 \o results/ut-R.tmpout
707 EXPLAIN SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
716 \! sql/maskout.sh results/ut-R.tmpout
718 --------------------------------------------------------------------------
719 Hash Join (cost=xxx..xxx rows=3 width=xxx)
720 Hash Cond: (t2.c1 = "*VALUES*".column1)
721 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
722 -> Hash (cost=xxx..xxx rows=3 width=xxx)
723 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=3 width=xxx)
725 \o results/ut-R.tmpout
726 /*+Rows(*VALUES* t2 #1)*/
727 EXPLAIN SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
736 \! sql/maskout.sh results/ut-R.tmpout
738 --------------------------------------------------------------------------
739 Hash Join (cost=xxx..xxx rows=1 width=xxx)
740 Hash Cond: (t2.c1 = "*VALUES*".column1)
741 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
742 -> Hash (cost=xxx..xxx rows=3 width=xxx)
743 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=3 width=xxx)
746 \o results/ut-R.tmpout
747 EXPLAIN WITH c1(c1) AS (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) SELECT * FROM s1.t1, c1 WHERE t1.c1 = c1.c1;
749 \! sql/maskout.sh results/ut-R.tmpout
751 ------------------------------------------------------------------------------------------------
752 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
753 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
754 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
755 Merge Cond: (t1_1.c1 = t2.c1)
756 -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx..xxx rows=1000 width=xxx)
757 -> Sort (cost=xxx..xxx rows=100 width=xxx)
759 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
760 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
761 Index Cond: (c1 = (max(t1_1.c1)))
763 \o results/ut-R.tmpout
764 /*+Rows(t1 t2 #1)Rows(t1 c1 +1)*/
765 EXPLAIN WITH c1(c1) AS (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) SELECT * FROM s1.t1, c1 WHERE t1.c1 = c1.c1;
775 \! sql/maskout.sh results/ut-R.tmpout
777 ------------------------------------------------------------------------------------------------
778 Nested Loop (cost=xxx..xxx rows=2 width=xxx)
779 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
780 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
781 Merge Cond: (t1_1.c1 = t2.c1)
782 -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx..xxx rows=1000 width=xxx)
783 -> Sort (cost=xxx..xxx rows=100 width=xxx)
785 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
786 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
787 Index Cond: (c1 = (max(t1_1.c1)))
790 \o results/ut-R.tmpout
791 EXPLAIN SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
793 \! sql/maskout.sh results/ut-R.tmpout
795 --------------------------------------------------------------------------
796 Hash Join (cost=xxx..xxx rows=1000 width=xxx)
797 Hash Cond: (v1t1.c1 = v1t1_1.c1)
798 -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
799 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
800 -> Seq Scan on t1 v1t1_1 (cost=xxx..xxx rows=1000 width=xxx)
802 \o results/ut-R.tmpout
804 EXPLAIN SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
813 \! sql/maskout.sh results/ut-R.tmpout
815 --------------------------------------------------------------------------
816 Hash Join (cost=xxx..xxx rows=1000 width=xxx)
817 Hash Cond: (v1t1.c1 = v1t1_1.c1)
818 -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
819 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
820 -> Seq Scan on t1 v1t1_1 (cost=xxx..xxx rows=1000 width=xxx)
822 \o results/ut-R.tmpout
823 /*+Rows(v1t1 v1t1_ #1)*/
824 EXPLAIN SELECT * FROM s1.v1 t1, s1.v1_ t2 WHERE t1.c1 = t2.c1;
833 \! sql/maskout.sh results/ut-R.tmpout
835 -------------------------------------------------------------------------
836 Hash Join (cost=xxx..xxx rows=1 width=xxx)
837 Hash Cond: (v1t1.c1 = v1t1_.c1)
838 -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
839 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
840 -> Seq Scan on t1 v1t1_ (cost=xxx..xxx rows=1000 width=xxx)
843 \o results/ut-R.tmpout
844 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.c1 = (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2 WHERE st1.c1 = st2.c1);
846 \! sql/maskout.sh results/ut-R.tmpout
848 -------------------------------------------------------------------------------------------------
849 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
850 InitPlan 1 (returns $0)
851 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
852 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
853 Merge Cond: (st1.c1 = st2.c1)
854 -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx..xxx rows=1000 width=xxx)
855 -> Sort (cost=xxx..xxx rows=100 width=xxx)
857 -> Seq Scan on t2 st2 (cost=xxx..xxx rows=100 width=xxx)
858 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
859 Index Cond: (c1 = $0)
860 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
863 \o results/ut-R.tmpout
864 /*+Rows(t1 t2 #1)Rows(st1 st2 #1)*/
865 EXPLAIN (COSTS true) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.c1 = (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2 WHERE st1.c1 = st2.c1);
875 \! sql/maskout.sh results/ut-R.tmpout
877 -------------------------------------------------------------------------------------------------
878 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
879 InitPlan 1 (returns $0)
880 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
881 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
882 Merge Cond: (st1.c1 = st2.c1)
883 -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx..xxx rows=1000 width=xxx)
884 -> Sort (cost=xxx..xxx rows=100 width=xxx)
886 -> Seq Scan on t2 st2 (cost=xxx..xxx rows=100 width=xxx)
887 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
888 Index Cond: (c1 = $0)
889 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
893 -- There are cases where difference in the measured value and predicted value
894 -- depending upon the version of PostgreSQL
896 \o results/ut-R.tmpout
897 EXPLAIN SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
899 \! sql/maskout.sh results/ut-R.tmpout
901 ---------------------------------------------------------------------------
902 Merge Join (cost=xxx..xxx rows=100 width=xxx)
903 Merge Cond: (t1.c1 = t2.c1)
904 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
905 -> Sort (cost=xxx..xxx rows=100 width=xxx)
907 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
909 \o results/ut-R.tmpout
911 EXPLAIN SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
920 \! sql/maskout.sh results/ut-R.tmpout
922 ---------------------------------------------------------------------------
923 Merge Join (cost=xxx..xxx rows=100 width=xxx)
924 Merge Cond: (t1.c1 = t2.c1)
925 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
926 -> Sort (cost=xxx..xxx rows=100 width=xxx)
928 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
930 \o results/ut-R.tmpout
932 EXPLAIN SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
941 \! sql/maskout.sh results/ut-R.tmpout
943 ---------------------------------------------------------------------------
944 Merge Join (cost=xxx..xxx rows=1 width=xxx)
945 Merge Cond: (t1.c1 = t2.c1)
946 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
947 -> Sort (cost=xxx..xxx rows=100 width=xxx)
949 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
952 ---- No. R-1-7 specified number of conditions
955 \o results/ut-R.tmpout
957 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
958 INFO: pg_hint_plan: hint syntax error at or near ""
959 DETAIL: Rows hint requires at least two relations.
968 \! sql/maskout.sh results/ut-R.tmpout
970 ---------------------------------------------------------------------------
971 Merge Join (cost=xxx..xxx rows=100 width=xxx)
972 Merge Cond: (t1.c1 = t2.c1)
973 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
974 -> Sort (cost=xxx..xxx rows=100 width=xxx)
976 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
979 \o results/ut-R.tmpout
981 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
982 INFO: pg_hint_plan: hint syntax error at or near "1"
983 DETAIL: Unrecognized rows value type notation.
992 \! sql/maskout.sh results/ut-R.tmpout
994 ---------------------------------------------------------------------------
995 Merge Join (cost=xxx..xxx rows=100 width=xxx)
996 Merge Cond: (t1.c1 = t2.c1)
997 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
998 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1000 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
1003 \o results/ut-R.tmpout
1004 /*+Rows(t1 t2 #notrows)*/
1005 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
1006 INFO: pg_hint_plan: hint syntax error at or near "notrows"
1007 DETAIL: Rows hint requires valid number as rows estimation.
1013 Rows(t1 t2 #notrows)
1016 \! sql/maskout.sh results/ut-R.tmpout
1018 ---------------------------------------------------------------------------
1019 Merge Join (cost=xxx..xxx rows=100 width=xxx)
1020 Merge Cond: (t1.c1 = t2.c1)
1021 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
1022 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1024 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
1027 ---- No. R-2-1 some complexity query blocks
1030 \o results/ut-R.tmpout
1032 Leading(bmt1 bmt2 bmt3 bmt4)
1033 Leading(b1t2 b1t3 b1t4 b1t1)
1034 Leading(b2t3 b2t4 b2t1 b2t2)
1035 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1036 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1037 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1040 SELECT max(bmt1.c1), (
1041 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1043 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
1045 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1049 MergeJoin(b1t2 b1t3)
1050 MergeJoin(b2t3 b2t4)
1051 MergeJoin(bmt1 bmt2)
1052 HashJoin(b1t2 b1t3 b1t4)
1053 HashJoin(b2t1 b2t3 b2t4)
1054 HashJoin(bmt1 bmt2 bmt3)
1055 NestLoop(b1t1 b1t2 b1t3 b1t4)
1056 NestLoop(b2t1 b2t2 b2t3 b2t4)
1057 NestLoop(bmt1 bmt2 bmt3 bmt4)
1058 Leading(bmt1 bmt2 bmt3 bmt4)
1059 Leading(b1t2 b1t3 b1t4 b1t1)
1060 Leading(b2t3 b2t4 b2t1 b2t2)
1066 \! sql/maskout.sh results/ut-R.tmpout
1068 --------------------------------------------------------------------------------------------------------------------
1069 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1070 InitPlan 1 (returns $1)
1071 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1072 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1073 Join Filter: (b1t2.c1 = b1t1.c1)
1074 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1075 Hash Cond: (b1t4.c1 = b1t2.c1)
1076 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
1077 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1078 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1079 Merge Cond: (b1t3.c1 = b1t2.c1)
1080 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
1081 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1083 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
1084 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
1085 Index Cond: (c1 = b1t3.c1)
1086 InitPlan 2 (returns $3)
1087 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1088 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1089 -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
1090 Hash Cond: (b2t3.c1 = b2t1.c1)
1091 -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
1092 Merge Cond: (b2t3.c1 = b2t4.c1)
1093 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
1094 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
1095 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
1096 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
1097 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
1098 Index Cond: (c1 = b2t1.c1)
1099 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1100 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1101 Hash Cond: (bmt3.c1 = bmt1.c1)
1102 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1103 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1104 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1105 Merge Cond: (bmt1.c1 = bmt2.c1)
1106 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
1107 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1109 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1110 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
1111 Index Cond: (c1 = bmt1.c1)
1113 \o results/ut-R.tmpout
1115 Leading(bmt1 bmt2 bmt3 bmt4)
1116 Leading(b1t2 b1t3 b1t4 b1t1)
1117 Leading(b2t3 b2t4 b2t1 b2t2)
1118 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1119 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1120 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1121 Rows(bmt1 bmt2 #1)Rows(bmt1 bmt2 bmt3 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
1122 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
1123 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
1126 SELECT max(bmt1.c1), (
1127 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1129 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1)
1130 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1134 MergeJoin(b1t2 b1t3)
1135 MergeJoin(b2t3 b2t4)
1136 MergeJoin(bmt1 bmt2)
1137 HashJoin(b1t2 b1t3 b1t4)
1138 HashJoin(b2t1 b2t3 b2t4)
1139 HashJoin(bmt1 bmt2 bmt3)
1140 NestLoop(b1t1 b1t2 b1t3 b1t4)
1141 NestLoop(b2t1 b2t2 b2t3 b2t4)
1142 NestLoop(bmt1 bmt2 bmt3 bmt4)
1143 Leading(bmt1 bmt2 bmt3 bmt4)
1144 Leading(b1t2 b1t3 b1t4 b1t1)
1145 Leading(b2t3 b2t4 b2t1 b2t2)
1149 Rows(b1t2 b1t3 b1t4 #1)
1150 Rows(b2t1 b2t3 b2t4 #1)
1151 Rows(bmt1 bmt2 bmt3 #1)
1152 Rows(b1t1 b1t2 b1t3 b1t4 #1)
1153 Rows(b2t1 b2t2 b2t3 b2t4 #1)
1154 Rows(bmt1 bmt2 bmt3 bmt4 #1)
1160 \! sql/maskout.sh results/ut-R.tmpout
1162 --------------------------------------------------------------------------------------------------------------------
1163 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1164 InitPlan 1 (returns $1)
1165 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1166 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1167 Join Filter: (b1t2.c1 = b1t1.c1)
1168 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1169 Hash Cond: (b1t4.c1 = b1t2.c1)
1170 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
1171 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1172 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1173 Merge Cond: (b1t3.c1 = b1t2.c1)
1174 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
1175 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1177 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
1178 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
1179 Index Cond: (c1 = b1t3.c1)
1180 InitPlan 2 (returns $3)
1181 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1182 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1183 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1184 Hash Cond: (b2t1.c1 = b2t3.c1)
1185 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
1186 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1187 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1188 Merge Cond: (b2t3.c1 = b2t4.c1)
1189 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
1190 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
1191 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
1192 Index Cond: (c1 = b2t1.c1)
1193 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1194 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1195 Hash Cond: (bmt3.c1 = bmt1.c1)
1196 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1197 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1198 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1199 Merge Cond: (bmt1.c1 = bmt2.c1)
1200 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
1201 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1203 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1204 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
1205 Index Cond: (c1 = bmt1.c1)
1208 \o results/ut-R.tmpout
1210 Leading(bmt1 bmt2 bmt3 bmt4)
1211 Leading(b1t2 b1t3 b1t4 b1t1)
1212 Leading(b2t3 b2t4 b2t1 b2t2)
1213 Leading(b3t4 b3t1 b3t2 b3t3)
1214 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1215 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1216 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1217 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1220 SELECT max(bmt1.c1), (
1221 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1223 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
1225 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.c1 = b3t2.c1 AND b3t1.c1 = b3t3.c1 AND b3t1.c1 = b3t4.c1
1227 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1231 MergeJoin(b1t2 b1t3)
1232 MergeJoin(b2t3 b2t4)
1233 MergeJoin(b3t1 b3t4)
1234 MergeJoin(bmt1 bmt2)
1235 HashJoin(b1t2 b1t3 b1t4)
1236 HashJoin(b2t1 b2t3 b2t4)
1237 HashJoin(b3t1 b3t2 b3t4)
1238 HashJoin(bmt1 bmt2 bmt3)
1239 NestLoop(b1t1 b1t2 b1t3 b1t4)
1240 NestLoop(b2t1 b2t2 b2t3 b2t4)
1241 NestLoop(b3t1 b3t2 b3t3 b3t4)
1242 NestLoop(bmt1 bmt2 bmt3 bmt4)
1243 Leading(bmt1 bmt2 bmt3 bmt4)
1244 Leading(b1t2 b1t3 b1t4 b1t1)
1245 Leading(b2t3 b2t4 b2t1 b2t2)
1246 Leading(b3t4 b3t1 b3t2 b3t3)
1252 \! sql/maskout.sh results/ut-R.tmpout
1254 --------------------------------------------------------------------------------------------------------------------
1255 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1256 InitPlan 1 (returns $1)
1257 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1258 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1259 Join Filter: (b1t2.c1 = b1t1.c1)
1260 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1261 Hash Cond: (b1t4.c1 = b1t2.c1)
1262 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
1263 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1264 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1265 Merge Cond: (b1t3.c1 = b1t2.c1)
1266 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
1267 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1269 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
1270 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
1271 Index Cond: (c1 = b1t3.c1)
1272 InitPlan 2 (returns $3)
1273 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1274 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1275 -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
1276 Hash Cond: (b2t3.c1 = b2t1.c1)
1277 -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
1278 Merge Cond: (b2t3.c1 = b2t4.c1)
1279 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
1280 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
1281 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
1282 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
1283 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
1284 Index Cond: (c1 = b2t1.c1)
1285 InitPlan 3 (returns $5)
1286 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1287 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1288 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1289 Hash Cond: (b3t1.c1 = b3t2.c1)
1290 -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
1291 Merge Cond: (b3t1.c1 = b3t4.c1)
1292 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
1293 -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
1294 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1295 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
1296 -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
1297 Index Cond: (c1 = b3t1.c1)
1298 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1299 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1300 Hash Cond: (bmt3.c1 = bmt1.c1)
1301 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1302 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1303 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1304 Merge Cond: (bmt1.c1 = bmt2.c1)
1305 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
1306 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1308 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1309 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
1310 Index Cond: (c1 = bmt1.c1)
1312 \o results/ut-R.tmpout
1314 Leading(bmt1 bmt2 bmt3 bmt4)
1315 Leading(b1t2 b1t3 b1t4 b1t1)
1316 Leading(b2t3 b2t4 b2t1 b2t2)
1317 Leading(b3t4 b3t1 b3t2 b3t3)
1318 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1319 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1320 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1321 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1322 Rows(bmt1 bmt2 #1)Rows(bmt1 bmt2 bmt3 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
1323 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
1324 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
1325 Rows(b3t4 b3t1 #1)Rows(b3t4 b3t1 b3t2 #1)Rows(b3t1 b3t2 b3t3 b3t4 #1)
1328 SELECT max(bmt1.c1), (
1329 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1331 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
1333 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.c1 = b3t2.c1 AND b3t1.c1 = b3t3.c1 AND b3t1.c1 = b3t4.c1
1335 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1339 MergeJoin(b1t2 b1t3)
1340 MergeJoin(b2t3 b2t4)
1341 MergeJoin(b3t1 b3t4)
1342 MergeJoin(bmt1 bmt2)
1343 HashJoin(b1t2 b1t3 b1t4)
1344 HashJoin(b2t1 b2t3 b2t4)
1345 HashJoin(b3t1 b3t2 b3t4)
1346 HashJoin(bmt1 bmt2 bmt3)
1347 NestLoop(b1t1 b1t2 b1t3 b1t4)
1348 NestLoop(b2t1 b2t2 b2t3 b2t4)
1349 NestLoop(b3t1 b3t2 b3t3 b3t4)
1350 NestLoop(bmt1 bmt2 bmt3 bmt4)
1351 Leading(bmt1 bmt2 bmt3 bmt4)
1352 Leading(b1t2 b1t3 b1t4 b1t1)
1353 Leading(b2t3 b2t4 b2t1 b2t2)
1354 Leading(b3t4 b3t1 b3t2 b3t3)
1359 Rows(b1t2 b1t3 b1t4 #1)
1360 Rows(b2t1 b2t3 b2t4 #1)
1361 Rows(b3t1 b3t2 b3t4 #1)
1362 Rows(bmt1 bmt2 bmt3 #1)
1363 Rows(b1t1 b1t2 b1t3 b1t4 #1)
1364 Rows(b2t1 b2t2 b2t3 b2t4 #1)
1365 Rows(b3t1 b3t2 b3t3 b3t4 #1)
1366 Rows(bmt1 bmt2 bmt3 bmt4 #1)
1372 \! sql/maskout.sh results/ut-R.tmpout
1374 --------------------------------------------------------------------------------------------------------------------
1375 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1376 InitPlan 1 (returns $1)
1377 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1378 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1379 Join Filter: (b1t2.c1 = b1t1.c1)
1380 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1381 Hash Cond: (b1t4.c1 = b1t2.c1)
1382 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
1383 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1384 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1385 Merge Cond: (b1t3.c1 = b1t2.c1)
1386 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
1387 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1389 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
1390 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
1391 Index Cond: (c1 = b1t3.c1)
1392 InitPlan 2 (returns $3)
1393 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1394 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1395 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1396 Hash Cond: (b2t1.c1 = b2t3.c1)
1397 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
1398 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1399 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1400 Merge Cond: (b2t3.c1 = b2t4.c1)
1401 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
1402 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
1403 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
1404 Index Cond: (c1 = b2t1.c1)
1405 InitPlan 3 (returns $5)
1406 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1407 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1408 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1409 Hash Cond: (b3t1.c1 = b3t2.c1)
1410 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1411 Merge Cond: (b3t1.c1 = b3t4.c1)
1412 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
1413 -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
1414 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1415 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
1416 -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
1417 Index Cond: (c1 = b3t1.c1)
1418 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1419 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1420 Hash Cond: (bmt3.c1 = bmt1.c1)
1421 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1422 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1423 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1424 Merge Cond: (bmt1.c1 = bmt2.c1)
1425 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
1426 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1428 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1429 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
1430 Index Cond: (c1 = bmt1.c1)
1433 \o results/ut-R.tmpout
1435 Leading(bmt4 bmt3 bmt2 bmt1)
1437 EXPLAIN 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.c1 = bmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
1440 Leading(bmt4 bmt3 bmt2 bmt1)
1446 \! sql/maskout.sh results/ut-R.tmpout
1448 -----------------------------------------------------------------------------------------------
1449 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1450 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1451 Merge Cond: (bmt1.c1 = bmt2.c1)
1452 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
1453 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1455 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1456 Hash Cond: (bmt3.c1 = bmt2.c1)
1457 -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
1458 Hash Cond: (bmt3.c1 = bmt4.c1)
1459 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1460 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
1461 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
1462 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1463 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1465 \o results/ut-R.tmpout
1467 Leading(bmt4 bmt3 bmt2 bmt1)
1468 Rows(bmt4 bmt3 #1)Rows(bmt4 bmt3 bmt2 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
1470 EXPLAIN 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.c1 = bmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
1473 Leading(bmt4 bmt3 bmt2 bmt1)
1475 Rows(bmt2 bmt3 bmt4 #1)
1476 Rows(bmt1 bmt2 bmt3 bmt4 #1)
1482 \! sql/maskout.sh results/ut-R.tmpout
1484 --------------------------------------------------------------------------------------------
1485 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1486 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1487 Join Filter: (bmt2.c1 = bmt1.c1)
1488 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1489 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1490 Hash Cond: (bmt3.c1 = bmt4.c1)
1491 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1492 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
1493 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
1494 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
1495 Index Cond: (c1 = bmt3.c1)
1496 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
1497 Index Cond: (c1 = bmt3.c1)
1500 \o results/ut-R.tmpout
1502 Leading(bmt4 bmt3 bmt2 bmt1)
1504 EXPLAIN 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.c1 = sbmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
1507 Leading(bmt4 bmt3 bmt2 bmt1)
1513 \! sql/maskout.sh results/ut-R.tmpout
1515 -----------------------------------------------------------------------------------------------
1516 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1517 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1518 Merge Cond: (bmt1.c1 = bmt2.c1)
1519 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
1520 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1522 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1523 Hash Cond: (bmt3.c1 = bmt2.c1)
1524 -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
1525 Hash Cond: (bmt3.c1 = bmt4.c1)
1526 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1527 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
1528 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
1529 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1530 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1532 \o results/ut-R.tmpout
1534 Leading(bmt4 bmt3 bmt2 bmt1)
1535 Rows(bmt4 bmt3 #1)Rows(bmt4 bmt3 bmt2 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
1537 EXPLAIN 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.c1 = sbmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
1540 Leading(bmt4 bmt3 bmt2 bmt1)
1542 Rows(bmt2 bmt3 bmt4 #1)
1543 Rows(bmt1 bmt2 bmt3 bmt4 #1)
1549 \! sql/maskout.sh results/ut-R.tmpout
1551 --------------------------------------------------------------------------------------------
1552 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1553 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1554 Join Filter: (bmt2.c1 = bmt1.c1)
1555 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1556 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1557 Hash Cond: (bmt3.c1 = bmt4.c1)
1558 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1559 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
1560 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
1561 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
1562 Index Cond: (c1 = bmt3.c1)
1563 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
1564 Index Cond: (c1 = bmt3.c1)
1567 \o results/ut-R.tmpout
1569 Leading(bmt1 bmt2 bmt3 bmt4)
1570 Leading(b1t2 b1t3 b1t4 b1t1)
1571 Leading(b2t3 b2t4 b2t1 b2t2)
1572 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1573 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1574 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1577 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1579 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1581 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
1585 MergeJoin(b1t2 b1t3)
1586 MergeJoin(b2t3 b2t4)
1587 MergeJoin(bmt1 bmt2)
1588 HashJoin(b1t2 b1t3 b1t4)
1589 HashJoin(b2t1 b2t3 b2t4)
1590 HashJoin(bmt1 bmt2 bmt3)
1591 NestLoop(b1t1 b1t2 b1t3 b1t4)
1592 NestLoop(b2t1 b2t2 b2t3 b2t4)
1593 NestLoop(bmt1 bmt2 bmt3 bmt4)
1594 Leading(bmt1 bmt2 bmt3 bmt4)
1595 Leading(b1t2 b1t3 b1t4 b1t1)
1596 Leading(b2t3 b2t4 b2t1 b2t2)
1602 \! sql/maskout.sh results/ut-R.tmpout
1604 --------------------------------------------------------------------------------------------------------------------
1605 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1606 InitPlan 1 (returns $1)
1607 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1608 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1609 Join Filter: (b1t2.c1 = b1t1.c1)
1610 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1611 Hash Cond: (b1t4.c1 = b1t2.c1)
1612 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
1613 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1614 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1615 Merge Cond: (b1t3.c1 = b1t2.c1)
1616 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
1617 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1619 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
1620 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
1621 Index Cond: (c1 = b1t3.c1)
1622 InitPlan 2 (returns $3)
1623 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1624 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1625 -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
1626 Hash Cond: (b2t3.c1 = b2t1.c1)
1627 -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
1628 Merge Cond: (b2t3.c1 = b2t4.c1)
1629 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
1630 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
1631 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
1632 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
1633 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
1634 Index Cond: (c1 = b2t1.c1)
1635 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1636 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1637 Hash Cond: (bmt3.c1 = bmt1.c1)
1638 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1639 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1640 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1641 Merge Cond: (bmt1.c1 = bmt2.c1)
1642 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=998 width=xxx)
1643 Filter: ((c1 <> $1) AND (c1 <> $3))
1644 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1646 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1647 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
1648 Index Cond: (c1 = bmt1.c1)
1650 \o results/ut-R.tmpout
1652 Leading(bmt1 bmt2 bmt3 bmt4)
1653 Leading(b1t2 b1t3 b1t4 b1t1)
1654 Leading(b2t3 b2t4 b2t1 b2t2)
1655 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1656 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1657 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1658 Rows(bmt1 bmt2 #1)Rows(bmt1 bmt2 bmt3 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
1659 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
1660 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
1663 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1665 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1667 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
1672 MergeJoin(b1t2 b1t3)
1673 MergeJoin(b2t3 b2t4)
1674 MergeJoin(bmt1 bmt2)
1675 HashJoin(b1t2 b1t3 b1t4)
1676 HashJoin(b2t1 b2t3 b2t4)
1677 HashJoin(bmt1 bmt2 bmt3)
1678 NestLoop(b1t1 b1t2 b1t3 b1t4)
1679 NestLoop(b2t1 b2t2 b2t3 b2t4)
1680 NestLoop(bmt1 bmt2 bmt3 bmt4)
1681 Leading(bmt1 bmt2 bmt3 bmt4)
1682 Leading(b1t2 b1t3 b1t4 b1t1)
1683 Leading(b2t3 b2t4 b2t1 b2t2)
1687 Rows(b1t2 b1t3 b1t4 #1)
1688 Rows(b2t1 b2t3 b2t4 #1)
1689 Rows(bmt1 bmt2 bmt3 #1)
1690 Rows(b1t1 b1t2 b1t3 b1t4 #1)
1691 Rows(b2t1 b2t2 b2t3 b2t4 #1)
1692 Rows(bmt1 bmt2 bmt3 bmt4 #1)
1698 \! sql/maskout.sh results/ut-R.tmpout
1700 --------------------------------------------------------------------------------------------------------------------
1701 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1702 InitPlan 1 (returns $1)
1703 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1704 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1705 Join Filter: (b1t2.c1 = b1t1.c1)
1706 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1707 Hash Cond: (b1t4.c1 = b1t2.c1)
1708 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
1709 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1710 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1711 Merge Cond: (b1t3.c1 = b1t2.c1)
1712 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
1713 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1715 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
1716 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
1717 Index Cond: (c1 = b1t3.c1)
1718 InitPlan 2 (returns $3)
1719 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1720 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1721 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1722 Hash Cond: (b2t1.c1 = b2t3.c1)
1723 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
1724 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1725 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1726 Merge Cond: (b2t3.c1 = b2t4.c1)
1727 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
1728 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
1729 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
1730 Index Cond: (c1 = b2t1.c1)
1731 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1732 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1733 Hash Cond: (bmt3.c1 = bmt1.c1)
1734 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1735 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1736 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1737 Merge Cond: (bmt1.c1 = bmt2.c1)
1738 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=998 width=xxx)
1739 Filter: ((c1 <> $1) AND (c1 <> $3))
1740 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1742 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1743 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
1744 Index Cond: (c1 = bmt1.c1)
1747 \o results/ut-R.tmpout
1749 Leading(bmt1 bmt2 bmt3 bmt4)
1750 Leading(b1t2 b1t3 b1t4 b1t1)
1751 Leading(b2t3 b2t4 b2t1 b2t2)
1752 Leading(b3t4 b3t1 b3t2 b3t3)
1753 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1754 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1755 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1756 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1759 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1761 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1763 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
1765 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.c1 = b3t2.c1 AND b3t1.c1 = b3t3.c1 AND b3t1.c1 = b3t4.c1
1770 MergeJoin(b1t2 b1t3)
1771 MergeJoin(b2t3 b2t4)
1772 MergeJoin(b3t1 b3t4)
1773 MergeJoin(bmt1 bmt2)
1774 HashJoin(b1t2 b1t3 b1t4)
1775 HashJoin(b2t1 b2t3 b2t4)
1776 HashJoin(b3t1 b3t2 b3t4)
1777 HashJoin(bmt1 bmt2 bmt3)
1778 NestLoop(b1t1 b1t2 b1t3 b1t4)
1779 NestLoop(b2t1 b2t2 b2t3 b2t4)
1780 NestLoop(b3t1 b3t2 b3t3 b3t4)
1781 NestLoop(bmt1 bmt2 bmt3 bmt4)
1782 Leading(bmt1 bmt2 bmt3 bmt4)
1783 Leading(b1t2 b1t3 b1t4 b1t1)
1784 Leading(b2t3 b2t4 b2t1 b2t2)
1785 Leading(b3t4 b3t1 b3t2 b3t3)
1791 \! sql/maskout.sh results/ut-R.tmpout
1793 --------------------------------------------------------------------------------------------------------------------
1794 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1795 InitPlan 1 (returns $1)
1796 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1797 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1798 Join Filter: (b1t2.c1 = b1t1.c1)
1799 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1800 Hash Cond: (b1t4.c1 = b1t2.c1)
1801 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
1802 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1803 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1804 Merge Cond: (b1t3.c1 = b1t2.c1)
1805 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
1806 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1808 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
1809 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
1810 Index Cond: (c1 = b1t3.c1)
1811 InitPlan 2 (returns $3)
1812 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1813 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1814 -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
1815 Hash Cond: (b2t3.c1 = b2t1.c1)
1816 -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
1817 Merge Cond: (b2t3.c1 = b2t4.c1)
1818 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
1819 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
1820 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
1821 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
1822 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
1823 Index Cond: (c1 = b2t1.c1)
1824 InitPlan 3 (returns $5)
1825 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1826 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1827 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1828 Hash Cond: (b3t1.c1 = b3t2.c1)
1829 -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
1830 Merge Cond: (b3t1.c1 = b3t4.c1)
1831 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
1832 -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
1833 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1834 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
1835 -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
1836 Index Cond: (c1 = b3t1.c1)
1837 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
1838 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
1839 Hash Cond: (bmt3.c1 = bmt1.c1)
1840 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1841 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1842 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
1843 Merge Cond: (bmt1.c1 = bmt2.c1)
1844 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=997 width=xxx)
1845 Filter: ((c1 <> $1) AND (c1 <> $3) AND (c1 <> $5))
1846 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1848 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1849 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
1850 Index Cond: (c1 = bmt1.c1)
1852 \o results/ut-R.tmpout
1854 Leading(bmt1 bmt2 bmt3 bmt4)
1855 Leading(b1t2 b1t3 b1t4 b1t1)
1856 Leading(b2t3 b2t4 b2t1 b2t2)
1857 Leading(b3t4 b3t1 b3t2 b3t3)
1858 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1859 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1860 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1861 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1862 Rows(bmt1 bmt2 #1)Rows(bmt1 bmt2 bmt3 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
1863 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
1864 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
1865 Rows(b3t4 b3t1 #1)Rows(b3t4 b3t1 b3t2 #1)Rows(b3t1 b3t2 b3t3 b3t4 #1)
1868 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1870 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1872 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
1874 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.c1 = b3t2.c1 AND b3t1.c1 = b3t3.c1 AND b3t1.c1 = b3t4.c1
1879 MergeJoin(b1t2 b1t3)
1880 MergeJoin(b2t3 b2t4)
1881 MergeJoin(b3t1 b3t4)
1882 MergeJoin(bmt1 bmt2)
1883 HashJoin(b1t2 b1t3 b1t4)
1884 HashJoin(b2t1 b2t3 b2t4)
1885 HashJoin(b3t1 b3t2 b3t4)
1886 HashJoin(bmt1 bmt2 bmt3)
1887 NestLoop(b1t1 b1t2 b1t3 b1t4)
1888 NestLoop(b2t1 b2t2 b2t3 b2t4)
1889 NestLoop(b3t1 b3t2 b3t3 b3t4)
1890 NestLoop(bmt1 bmt2 bmt3 bmt4)
1891 Leading(bmt1 bmt2 bmt3 bmt4)
1892 Leading(b1t2 b1t3 b1t4 b1t1)
1893 Leading(b2t3 b2t4 b2t1 b2t2)
1894 Leading(b3t4 b3t1 b3t2 b3t3)
1899 Rows(b1t2 b1t3 b1t4 #1)
1900 Rows(b2t1 b2t3 b2t4 #1)
1901 Rows(b3t1 b3t2 b3t4 #1)
1902 Rows(bmt1 bmt2 bmt3 #1)
1903 Rows(b1t1 b1t2 b1t3 b1t4 #1)
1904 Rows(b2t1 b2t2 b2t3 b2t4 #1)
1905 Rows(b3t1 b3t2 b3t3 b3t4 #1)
1906 Rows(bmt1 bmt2 bmt3 bmt4 #1)
1912 \! sql/maskout.sh results/ut-R.tmpout
1914 --------------------------------------------------------------------------------------------------------------------
1915 Aggregate (cost=xxx..xxx rows=1 width=xxx)
1916 InitPlan 1 (returns $1)
1917 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1918 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1919 Join Filter: (b1t2.c1 = b1t1.c1)
1920 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1921 Hash Cond: (b1t4.c1 = b1t2.c1)
1922 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
1923 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1924 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1925 Merge Cond: (b1t3.c1 = b1t2.c1)
1926 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
1927 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1929 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
1930 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
1931 Index Cond: (c1 = b1t3.c1)
1932 InitPlan 2 (returns $3)
1933 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1934 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1935 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1936 Hash Cond: (b2t1.c1 = b2t3.c1)
1937 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
1938 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1939 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1940 Merge Cond: (b2t3.c1 = b2t4.c1)
1941 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
1942 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
1943 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
1944 Index Cond: (c1 = b2t1.c1)
1945 InitPlan 3 (returns $5)
1946 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
1947 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1948 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1949 Hash Cond: (b3t1.c1 = b3t2.c1)
1950 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1951 Merge Cond: (b3t1.c1 = b3t4.c1)
1952 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
1953 -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
1954 -> Hash (cost=xxx..xxx rows=100 width=xxx)
1955 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
1956 -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
1957 Index Cond: (c1 = b3t1.c1)
1958 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
1959 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
1960 Hash Cond: (bmt3.c1 = bmt1.c1)
1961 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
1962 -> Hash (cost=xxx..xxx rows=1 width=xxx)
1963 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
1964 Merge Cond: (bmt1.c1 = bmt2.c1)
1965 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=997 width=xxx)
1966 Filter: ((c1 <> $1) AND (c1 <> $3) AND (c1 <> $5))
1967 -> Sort (cost=xxx..xxx rows=100 width=xxx)
1969 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
1970 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
1971 Index Cond: (c1 = bmt1.c1)
1974 \o results/ut-R.tmpout
1976 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1977 Leading(b1t2 b1t3 b1t4 b1t1)
1978 Leading(b2t3 b2t4 b2t1 b2t2)
1979 MergeJoin(c2 c1)HashJoin(c2 c1 bmt1)NestLoop(c2 c1 bmt1 bmt2)MergeJoin(c2 c1 bmt1 bmt2 bmt3)HashJoin(c2 c1 bmt1 bmt2 bmt3 bmt4)
1980 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1981 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1985 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
1988 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
1990 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1992 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1998 MergeJoin(b1t2 b1t3)
1999 MergeJoin(b2t3 b2t4)
2001 HashJoin(b1t2 b1t3 b1t4)
2002 HashJoin(b2t1 b2t3 b2t4)
2003 HashJoin(bmt1 c1 c2)
2004 NestLoop(b1t1 b1t2 b1t3 b1t4)
2005 NestLoop(b2t1 b2t2 b2t3 b2t4)
2006 NestLoop(bmt1 bmt2 c1 c2)
2007 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
2008 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
2009 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2010 Leading(b1t2 b1t3 b1t4 b1t1)
2011 Leading(b2t3 b2t4 b2t1 b2t2)
2017 \! sql/maskout.sh results/ut-R.tmpout
2019 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2020 Aggregate (cost=xxx..xxx rows=1 width=xxx)
2021 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2022 Hash Cond: (bmt4.c1 = bmt1.c1)
2023 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
2024 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2025 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2026 Merge Cond: (bmt3.c1 = bmt1.c1)
2027 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
2028 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2030 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2031 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2032 Hash Cond: (bmt1.c1 = (max(b1t1.c1)))
2033 -> Seq Scan on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
2034 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2035 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2036 Merge Cond: ((max(b1t1.c1)) = (max(b2t1.c1)))
2037 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2038 Sort Key: (max(b1t1.c1))
2039 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2040 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
2041 Join Filter: (b1t2.c1 = b1t1.c1)
2042 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
2043 Hash Cond: (b1t4.c1 = b1t2.c1)
2044 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
2045 -> Hash (cost=xxx..xxx rows=100 width=xxx)
2046 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
2047 Merge Cond: (b1t3.c1 = b1t2.c1)
2048 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
2049 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2051 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
2052 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
2053 Index Cond: (c1 = b1t3.c1)
2054 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2055 Sort Key: (max(b2t1.c1))
2056 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2057 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
2058 -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
2059 Hash Cond: (b2t3.c1 = b2t1.c1)
2060 -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
2061 Merge Cond: (b2t3.c1 = b2t4.c1)
2062 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
2063 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
2064 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
2065 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
2066 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
2067 Index Cond: (c1 = b2t1.c1)
2068 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
2069 Index Cond: (c1 = bmt1.c1)
2071 \o results/ut-R.tmpout
2073 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2074 Leading(b1t2 b1t3 b1t4 b1t1)
2075 Leading(b2t3 b2t4 b2t1 b2t2)
2076 MergeJoin(c2 c1)HashJoin(c2 c1 bmt1)NestLoop(c2 c1 bmt1 bmt2)MergeJoin(c2 c1 bmt1 bmt2 bmt3)HashJoin(c2 c1 bmt1 bmt2 bmt3 bmt4)
2077 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2078 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2079 Rows(c2 c1 #1)Rows(c2 c1 bmt1 #1)Rows(c2 c1 bmt1 bmt2 #1)Rows(c2 c1 bmt1 bmt2 bmt3 #1)Rows(c2 c1 bmt1 bmt2 bmt3 bmt4 #1)
2080 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
2081 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
2085 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
2088 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
2090 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2092 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
2094 AND bmt1.c1 = c2.c1;
2097 MergeJoin(b1t2 b1t3)
2098 MergeJoin(b2t3 b2t4)
2100 HashJoin(b1t2 b1t3 b1t4)
2101 HashJoin(b2t1 b2t3 b2t4)
2102 HashJoin(bmt1 c1 c2)
2103 NestLoop(b1t1 b1t2 b1t3 b1t4)
2104 NestLoop(b2t1 b2t2 b2t3 b2t4)
2105 NestLoop(bmt1 bmt2 c1 c2)
2106 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
2107 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
2108 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
2109 Leading(b1t2 b1t3 b1t4 b1t1)
2110 Leading(b2t3 b2t4 b2t1 b2t2)
2114 Rows(b1t2 b1t3 b1t4 #1)
2115 Rows(b2t1 b2t3 b2t4 #1)
2117 Rows(b1t1 b1t2 b1t3 b1t4 #1)
2118 Rows(b2t1 b2t2 b2t3 b2t4 #1)
2119 Rows(bmt1 bmt2 c1 c2 #1)
2120 Rows(bmt1 bmt2 bmt3 c1 c2 #1)
2121 Rows(bmt1 bmt2 bmt3 bmt4 c1 c2 #1)
2127 \! sql/maskout.sh results/ut-R.tmpout
2129 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2130 Aggregate (cost=xxx..xxx rows=1 width=xxx)
2131 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2132 Hash Cond: (bmt4.c1 = bmt1.c1)
2133 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
2134 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2135 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2136 Merge Cond: (bmt3.c1 = bmt1.c1)
2137 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
2138 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2140 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2141 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2142 Hash Cond: (bmt1.c1 = (max(b1t1.c1)))
2143 -> Seq Scan on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
2144 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2145 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2146 Merge Cond: ((max(b1t1.c1)) = (max(b2t1.c1)))
2147 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2148 Sort Key: (max(b1t1.c1))
2149 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2150 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2151 Join Filter: (b1t2.c1 = b1t1.c1)
2152 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2153 Hash Cond: (b1t4.c1 = b1t2.c1)
2154 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
2155 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2156 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2157 Merge Cond: (b1t3.c1 = b1t2.c1)
2158 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
2159 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2161 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
2162 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
2163 Index Cond: (c1 = b1t3.c1)
2164 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2165 Sort Key: (max(b2t1.c1))
2166 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2167 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2168 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2169 Hash Cond: (b2t1.c1 = b2t3.c1)
2170 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
2171 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2172 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2173 Merge Cond: (b2t3.c1 = b2t4.c1)
2174 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
2175 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
2176 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
2177 Index Cond: (c1 = b2t1.c1)
2178 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
2179 Index Cond: (c1 = bmt1.c1)
2182 \o results/ut-R.tmpout
2184 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2185 Leading(b1t2 b1t3 b1t4 b1t1)
2186 Leading(b2t3 b2t4 b2t1 b2t2)
2187 Leading(b3t4 b3t1 b3t2 b3t3)
2188 MergeJoin(c3 c2)HashJoin(c3 c2 c1)NestLoop(c3 c2 c1 bmt1)MergeJoin(c3 c2 c1 bmt1 bmt2)HashJoin(c3 c2 c1 bmt1 bmt2 bmt3)NestLoop(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2189 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2190 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2191 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
2195 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
2198 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
2201 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.c1 = b3t2.c1 AND b3t1.c1 = b3t3.c1 AND b3t1.c1 = b3t4.c1
2203 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2205 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
2208 AND bmt1.c1 = c3.c1;
2211 MergeJoin(b1t2 b1t3)
2212 MergeJoin(b2t3 b2t4)
2213 MergeJoin(b3t1 b3t4)
2215 HashJoin(b1t2 b1t3 b1t4)
2216 HashJoin(b2t1 b2t3 b2t4)
2217 HashJoin(b3t1 b3t2 b3t4)
2219 NestLoop(b1t1 b1t2 b1t3 b1t4)
2220 NestLoop(b2t1 b2t2 b2t3 b2t4)
2221 NestLoop(b3t1 b3t2 b3t3 b3t4)
2222 NestLoop(bmt1 c1 c2 c3)
2223 MergeJoin(bmt1 bmt2 c1 c2 c3)
2224 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2225 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2226 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2227 Leading(b1t2 b1t3 b1t4 b1t1)
2228 Leading(b2t3 b2t4 b2t1 b2t2)
2229 Leading(b3t4 b3t1 b3t2 b3t3)
2235 \! sql/maskout.sh results/ut-R.tmpout
2237 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
2238 Aggregate (cost=xxx..xxx rows=1 width=xxx)
2239 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2240 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2241 Hash Cond: (bmt3.c1 = bmt1.c1)
2242 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
2243 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2244 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2245 Merge Cond: (bmt1.c1 = bmt2.c1)
2246 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2248 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2249 Join Filter: ((max(b1t1.c1)) = bmt1.c1)
2250 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2251 Hash Cond: ((max(b2t1.c1)) = (max(b1t1.c1)))
2252 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2253 Merge Cond: ((max(b2t1.c1)) = (max(b3t1.c1)))
2254 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2255 Sort Key: (max(b2t1.c1))
2256 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2257 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
2258 -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
2259 Hash Cond: (b2t3.c1 = b2t1.c1)
2260 -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
2261 Merge Cond: (b2t3.c1 = b2t4.c1)
2262 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
2263 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
2264 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
2265 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
2266 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
2267 Index Cond: (c1 = b2t1.c1)
2268 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2269 Sort Key: (max(b3t1.c1))
2270 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2271 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
2272 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
2273 Hash Cond: (b3t1.c1 = b3t2.c1)
2274 -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
2275 Merge Cond: (b3t1.c1 = b3t4.c1)
2276 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
2277 -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
2278 -> Hash (cost=xxx..xxx rows=100 width=xxx)
2279 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
2280 -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
2281 Index Cond: (c1 = b3t1.c1)
2282 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2283 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2284 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
2285 Join Filter: (b1t2.c1 = b1t1.c1)
2286 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
2287 Hash Cond: (b1t4.c1 = b1t2.c1)
2288 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
2289 -> Hash (cost=xxx..xxx rows=100 width=xxx)
2290 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
2291 Merge Cond: (b1t3.c1 = b1t2.c1)
2292 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
2293 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2295 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
2296 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
2297 Index Cond: (c1 = b1t3.c1)
2298 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
2299 Index Cond: (c1 = (max(b2t1.c1)))
2300 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2302 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
2303 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
2304 Index Cond: (c1 = bmt1.c1)
2306 \o results/ut-R.tmpout
2308 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2309 Leading(b1t2 b1t3 b1t4 b1t1)
2310 Leading(b2t3 b2t4 b2t1 b2t2)
2311 Leading(b3t4 b3t1 b3t2 b3t3)
2312 MergeJoin(c3 c2)HashJoin(c3 c2 c1)NestLoop(c3 c2 c1 bmt1)MergeJoin(c3 c2 c1 bmt1 bmt2)HashJoin(c3 c2 c1 bmt1 bmt2 bmt3)NestLoop(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2313 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2314 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2315 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
2316 Rows(c3 c2 #1)Rows(c3 c2 c1 #1)Rows(c3 c2 c1 bmt1 #1)Rows(c3 c2 c1 bmt1 bmt2 #1)Rows(c3 c2 c1 bmt1 bmt2 bmt3 #1)Rows(c3 c2 c1 bmt1 bmt2 bmt3 bmt4 #1)
2317 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
2318 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
2319 Rows(b3t4 b3t1 #1)Rows(b3t4 b3t1 b3t2 #1)Rows(b3t1 b3t2 b3t3 b3t4 #1)
2323 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
2326 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
2329 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.c1 = b3t2.c1 AND b3t1.c1 = b3t3.c1 AND b3t1.c1 = b3t4.c1
2331 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2333 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
2336 AND bmt1.c1 = c3.c1;
2339 MergeJoin(b1t2 b1t3)
2340 MergeJoin(b2t3 b2t4)
2341 MergeJoin(b3t1 b3t4)
2343 HashJoin(b1t2 b1t3 b1t4)
2344 HashJoin(b2t1 b2t3 b2t4)
2345 HashJoin(b3t1 b3t2 b3t4)
2347 NestLoop(b1t1 b1t2 b1t3 b1t4)
2348 NestLoop(b2t1 b2t2 b2t3 b2t4)
2349 NestLoop(b3t1 b3t2 b3t3 b3t4)
2350 NestLoop(bmt1 c1 c2 c3)
2351 MergeJoin(bmt1 bmt2 c1 c2 c3)
2352 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2353 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2354 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2355 Leading(b1t2 b1t3 b1t4 b1t1)
2356 Leading(b2t3 b2t4 b2t1 b2t2)
2357 Leading(b3t4 b3t1 b3t2 b3t3)
2362 Rows(b1t2 b1t3 b1t4 #1)
2363 Rows(b2t1 b2t3 b2t4 #1)
2364 Rows(b3t1 b3t2 b3t4 #1)
2366 Rows(b1t1 b1t2 b1t3 b1t4 #1)
2367 Rows(b2t1 b2t2 b2t3 b2t4 #1)
2368 Rows(b3t1 b3t2 b3t3 b3t4 #1)
2369 Rows(bmt1 c1 c2 c3 #1)
2370 Rows(bmt1 bmt2 c1 c2 c3 #1)
2371 Rows(bmt1 bmt2 bmt3 c1 c2 c3 #1)
2372 Rows(bmt1 bmt2 bmt3 bmt4 c1 c2 c3 #1)
2378 \! sql/maskout.sh results/ut-R.tmpout
2380 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2381 Aggregate (cost=xxx..xxx rows=1 width=xxx)
2382 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2383 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2384 Hash Cond: (bmt3.c1 = bmt1.c1)
2385 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
2386 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2387 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2388 Merge Cond: (bmt1.c1 = bmt2.c1)
2389 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2391 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2392 Join Filter: ((max(b1t1.c1)) = bmt1.c1)
2393 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2394 Hash Cond: ((max(b2t1.c1)) = (max(b1t1.c1)))
2395 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2396 Merge Cond: ((max(b2t1.c1)) = (max(b3t1.c1)))
2397 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2398 Sort Key: (max(b2t1.c1))
2399 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2400 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2401 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2402 Hash Cond: (b2t1.c1 = b2t3.c1)
2403 -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
2404 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2405 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2406 Merge Cond: (b2t3.c1 = b2t4.c1)
2407 -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
2408 -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
2409 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
2410 Index Cond: (c1 = b2t1.c1)
2411 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2412 Sort Key: (max(b3t1.c1))
2413 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2414 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2415 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2416 Hash Cond: (b3t1.c1 = b3t2.c1)
2417 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2418 Merge Cond: (b3t1.c1 = b3t4.c1)
2419 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
2420 -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
2421 -> Hash (cost=xxx..xxx rows=100 width=xxx)
2422 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
2423 -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
2424 Index Cond: (c1 = b3t1.c1)
2425 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2426 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
2427 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2428 Join Filter: (b1t2.c1 = b1t1.c1)
2429 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2430 Hash Cond: (b1t4.c1 = b1t2.c1)
2431 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
2432 -> Hash (cost=xxx..xxx rows=1 width=xxx)
2433 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2434 Merge Cond: (b1t3.c1 = b1t2.c1)
2435 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
2436 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2438 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
2439 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
2440 Index Cond: (c1 = b1t3.c1)
2441 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
2442 Index Cond: (c1 = (max(b2t1.c1)))
2443 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2445 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
2446 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
2447 Index Cond: (c1 = bmt1.c1)
2450 ---- No. R-2-2 the number of the tables per quiry block
2453 \o results/ut-R.tmpout
2459 SELECT b1t1.c1 FROM s1.t1 b1t1 WHERE b1t1.c1 = 1
2462 SELECT b2t1.c1 FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
2464 FROM s1.t1 bmt1, c1 WHERE bmt1.c1 = 1
2467 SELECT b3t1.c1 FROM s1.t1 b3t1 WHERE b3t1.c1 = 1
2477 \! sql/maskout.sh results/ut-R.tmpout
2479 ----------------------------------------------------------------------------------
2480 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2481 InitPlan 1 (returns $0)
2482 -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
2483 Index Cond: (c1 = 1)
2484 InitPlan 2 (returns $1)
2485 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1 width=xxx)
2486 Index Cond: (c1 = 1)
2487 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
2488 Index Cond: (c1 = 1)
2490 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
2491 Index Cond: (c1 = 1)
2493 \o results/ut-R.tmpout
2503 SELECT b1t1.c1 FROM s1.t1 b1t1 WHERE b1t1.c1 = 1
2506 SELECT b2t1.c1 FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
2508 FROM s1.t1 bmt1, c1 WHERE bmt1.c1 = 1
2511 SELECT b3t1.c1 FROM s1.t1 b3t1 WHERE b3t1.c1 = 1
2525 \! sql/maskout.sh results/ut-R.tmpout
2527 ----------------------------------------------------------------------------------
2528 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2529 InitPlan 1 (returns $0)
2530 -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
2531 Index Cond: (c1 = 1)
2532 InitPlan 2 (returns $1)
2533 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1 width=xxx)
2534 Index Cond: (c1 = 1)
2535 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
2536 Index Cond: (c1 = 1)
2538 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
2539 Index Cond: (c1 = 1)
2542 \o results/ut-R.tmpout
2544 Leading(c1 bmt2 bmt1)
2549 HashJoin(c1 bmt1 bmt2)
2550 MergeJoin(b1t1 b1t2)
2551 MergeJoin(b2t1 b2t2)
2552 MergeJoin(b3t1 b3t2)
2556 SELECT b1t1.c1 FROM s1.t1 b1t1, s1.t2 b1t2 WHERE b1t1.c1 = b1t2.c1
2559 SELECT b2t1.c1 FROM s1.t1 b2t1, s1.t2 b2t2 WHERE b2t1.c1 = b2t2.c1
2561 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.c1 = bmt2.c1
2564 SELECT b3t1.c1 FROM s1.t1 b3t1, s1.t2 b3t2 WHERE b3t1.c1 = b3t2.c1
2568 MergeJoin(b1t1 b1t2)
2569 MergeJoin(b2t1 b2t2)
2570 MergeJoin(b3t1 b3t2)
2576 HashJoin(bmt1 bmt2 c1)
2577 Leading(c1 bmt2 bmt1)
2582 \! sql/maskout.sh results/ut-R.tmpout
2584 ------------------------------------------------------------------------------------------------
2585 Nested Loop (cost=xxx..xxx rows=10 width=xxx)
2586 Join Filter: (bmt1.c1 = bmt2.c1)
2587 InitPlan 1 (returns $0)
2588 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
2589 Merge Cond: (b2t1.c1 = b2t2.c1)
2590 -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
2591 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2593 -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=100 width=xxx)
2594 InitPlan 2 (returns $1)
2595 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
2596 Merge Cond: (b3t1.c1 = b3t2.c1)
2597 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
2598 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2600 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
2601 -> Nested Loop (cost={inf}..{inf} rows=100 width=xxx)
2602 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
2603 Merge Cond: (b1t1.c1 = b1t2.c1)
2604 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1000 width=xxx)
2605 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2607 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
2608 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
2609 Index Cond: (c1 = b1t1.c1)
2611 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
2612 Index Cond: (c1 = b1t1.c1)
2614 \o results/ut-R.tmpout
2616 Leading(c1 bmt2 bmt1)
2621 HashJoin(c1 bmt1 bmt2)
2622 MergeJoin(b1t1 b1t2)
2623 MergeJoin(b2t1 b2t2)
2624 MergeJoin(b3t1 b3t2)
2626 Rows(c1 bmt1 bmt2 #1)
2633 SELECT b1t1.c1 FROM s1.t1 b1t1, s1.t2 b1t2 WHERE b1t1.c1 = b1t2.c1
2636 SELECT b2t1.c1 FROM s1.t1 b2t1, s1.t2 b2t2 WHERE b2t1.c1 = b2t2.c1
2638 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.c1 = bmt2.c1
2641 SELECT b3t1.c1 FROM s1.t1 b3t1, s1.t2 b3t2 WHERE b3t1.c1 = b3t2.c1
2646 MergeJoin(b1t1 b1t2)
2647 MergeJoin(b2t1 b2t2)
2648 MergeJoin(b3t1 b3t2)
2657 HashJoin(bmt1 bmt2 c1)
2658 Leading(c1 bmt2 bmt1)
2660 Rows(bmt1 bmt2 c1 #1)
2665 \! sql/maskout.sh results/ut-R.tmpout
2667 ------------------------------------------------------------------------------------------------
2668 Nested Loop (cost=xxx..xxx rows=10 width=xxx)
2669 Join Filter: (bmt1.c1 = bmt2.c1)
2670 InitPlan 1 (returns $0)
2671 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2672 Merge Cond: (b2t1.c1 = b2t2.c1)
2673 -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
2674 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2676 -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=100 width=xxx)
2677 InitPlan 2 (returns $1)
2678 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2679 Merge Cond: (b3t1.c1 = b3t2.c1)
2680 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
2681 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2683 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
2684 -> Nested Loop (cost={inf}..{inf} rows=100 width=xxx)
2685 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2686 Merge Cond: (b1t1.c1 = b1t2.c1)
2687 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1000 width=xxx)
2688 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2690 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
2691 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
2692 Index Cond: (c1 = b1t1.c1)
2694 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
2695 Index Cond: (c1 = b1t1.c1)
2698 \o results/ut-R.tmpout
2700 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2701 Leading(b1t4 b1t3 b1t2 b1t1)
2702 Leading(b2t4 b2t3 b2t2 b2t1)
2703 Leading(b3t4 b3t3 b3t2 b3t1)
2705 HashJoin(c1 bmt4 bmt3)
2706 NestLoop(c1 bmt4 bmt3 bmt2)
2707 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2709 NestLoop(b1t4 b1t3 b1t2)
2710 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2712 NestLoop(b2t4 b2t3 b2t2)
2713 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2715 NestLoop(b3t4 b3t3 b3t2)
2716 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2720 SELECT b1t1.c1 FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
2723 SELECT b2t1.c1 FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
2725 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1 AND bmt1.c1 = c1.c1
2727 SELECT b3t1.c1 FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.c1 = b3t2.c1 AND b3t1.c1 = b3t3.c1 AND b3t1.c1 = b3t4.c1
2734 NestLoop(b1t2 b1t3 b1t4)
2735 NestLoop(b2t2 b2t3 b2t4)
2736 NestLoop(b3t2 b3t3 b3t4)
2737 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2738 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2739 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2740 Leading(b1t4 b1t3 b1t2 b1t1)
2741 Leading(b2t4 b2t3 b2t2 b2t1)
2742 Leading(b3t4 b3t3 b3t2 b3t1)
2745 HashJoin(bmt3 bmt4 c1)
2746 NestLoop(bmt2 bmt3 bmt4 c1)
2747 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2748 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2753 \! sql/maskout.sh results/ut-R.tmpout
2755 --------------------------------------------------------------------------------------------------------------------
2756 Nested Loop (cost=xxx..xxx rows=10 width=xxx)
2757 Join Filter: (bmt1.c1 = bmt4.c1)
2758 InitPlan 1 (returns $1)
2759 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
2760 Merge Cond: (b2t1.c1 = b2t2.c1)
2761 -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
2762 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2764 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
2765 -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
2766 Hash Cond: (b2t3.c1 = b2t4.c1)
2767 -> Seq Scan on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
2768 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
2769 -> Seq Scan on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
2770 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
2771 Index Cond: (c1 = b2t3.c1)
2772 InitPlan 2 (returns $3)
2773 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
2774 Merge Cond: (b3t1.c1 = b3t2.c1)
2775 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
2776 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2778 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
2779 -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
2780 Hash Cond: (b3t3.c1 = b3t4.c1)
2781 -> Seq Scan on t3 b3t3 (cost=xxx..xxx rows=1130 width=xxx)
2782 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
2783 -> Seq Scan on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
2784 -> Index Only Scan using t2_i1 on t2 b3t2 (cost=xxx..xxx rows=1 width=xxx)
2785 Index Cond: (c1 = b3t3.c1)
2786 -> Nested Loop (cost=xxx..xxx rows=10 width=xxx)
2787 Join Filter: (bmt1.c1 = bmt3.c1)
2788 -> Nested Loop (cost=xxx..xxx rows=10 width=xxx)
2789 Join Filter: (bmt1.c1 = bmt2.c1)
2790 -> Nested Loop (cost={inf}..{inf} rows=100 width=xxx)
2791 Join Filter: (b1t1.c1 = bmt1.c1)
2792 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
2793 Merge Cond: (b1t1.c1 = b1t2.c1)
2794 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1000 width=xxx)
2795 -> Sort (cost=xxx..xxx rows=100 width=xxx)
2797 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
2798 -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
2799 Hash Cond: (b1t3.c1 = b1t4.c1)
2800 -> Seq Scan on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
2801 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
2802 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
2803 -> Index Only Scan using t2_i1 on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
2804 Index Cond: (c1 = b1t3.c1)
2805 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
2806 Index Cond: (c1 = b1t3.c1)
2808 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
2809 Index Cond: (c1 = b1t3.c1)
2810 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1 width=xxx)
2811 Index Cond: (c1 = b1t3.c1)
2812 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
2813 Index Cond: (c1 = bmt3.c1)
2815 \o results/ut-R.tmpout
2817 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2818 Leading(b1t4 b1t3 b1t2 b1t1)
2819 Leading(b2t4 b2t3 b2t2 b2t1)
2820 Leading(b3t4 b3t3 b3t2 b3t1)
2822 HashJoin(c1 bmt4 bmt3)
2823 NestLoop(c1 bmt4 bmt3 bmt2)
2824 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2826 NestLoop(b1t4 b1t3 b1t2)
2827 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2829 NestLoop(b2t4 b2t3 b2t2)
2830 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2832 NestLoop(b3t4 b3t3 b3t2)
2833 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2835 Rows(c1 bmt4 bmt3 #1)
2836 Rows(c1 bmt4 bmt3 bmt2 #1)
2837 Rows(c1 bmt4 bmt3 bmt2 bmt1 #1)
2839 Rows(b1t4 b1t3 b1t2 #1)
2840 Rows(b1t4 b1t3 b1t2 b1t1 #1)
2842 Rows(b2t4 b2t3 b2t2 #1)
2843 Rows(b2t4 b2t3 b2t2 b2t1 #1)
2845 Rows(b3t4 b3t3 b3t2 #1)
2846 Rows(b3t4 b3t3 b3t2 b3t1 #1)
2850 SELECT b1t1.c1 FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
2853 SELECT b2t1.c1 FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
2855 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1 AND bmt1.c1 = c1.c1
2857 SELECT b3t1.c1 FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.c1 = b3t2.c1 AND b3t1.c1 = b3t3.c1 AND b3t1.c1 = b3t4.c1
2864 NestLoop(b1t2 b1t3 b1t4)
2865 NestLoop(b2t2 b2t3 b2t4)
2866 NestLoop(b3t2 b3t3 b3t4)
2867 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2868 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2869 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2870 Leading(b1t4 b1t3 b1t2 b1t1)
2871 Leading(b2t4 b2t3 b2t2 b2t1)
2872 Leading(b3t4 b3t3 b3t2 b3t1)
2876 Rows(b1t2 b1t3 b1t4 #1)
2877 Rows(b2t2 b2t3 b2t4 #1)
2878 Rows(b3t2 b3t3 b3t4 #1)
2879 Rows(b1t1 b1t2 b1t3 b1t4 #1)
2880 Rows(b2t1 b2t2 b2t3 b2t4 #1)
2881 Rows(b3t1 b3t2 b3t3 b3t4 #1)
2884 HashJoin(bmt3 bmt4 c1)
2885 NestLoop(bmt2 bmt3 bmt4 c1)
2886 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2887 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2889 Rows(bmt3 bmt4 c1 #1)
2890 Rows(bmt2 bmt3 bmt4 c1 #1)
2891 Rows(bmt1 bmt2 bmt3 bmt4 c1 #1)
2896 \! sql/maskout.sh results/ut-R.tmpout
2898 --------------------------------------------------------------------------------------------------------------------
2899 Nested Loop (cost=xxx..xxx rows=10 width=xxx)
2900 Join Filter: (bmt1.c1 = bmt4.c1)
2901 InitPlan 1 (returns $1)
2902 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2903 Merge Cond: (b2t1.c1 = b2t2.c1)
2904 -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
2905 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2907 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2908 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2909 Hash Cond: (b2t3.c1 = b2t4.c1)
2910 -> Seq Scan on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
2911 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
2912 -> Seq Scan on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
2913 -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
2914 Index Cond: (c1 = b2t3.c1)
2915 InitPlan 2 (returns $3)
2916 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2917 Merge Cond: (b3t1.c1 = b3t2.c1)
2918 -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
2919 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2921 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2922 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2923 Hash Cond: (b3t3.c1 = b3t4.c1)
2924 -> Seq Scan on t3 b3t3 (cost=xxx..xxx rows=1130 width=xxx)
2925 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
2926 -> Seq Scan on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
2927 -> Index Only Scan using t2_i1 on t2 b3t2 (cost=xxx..xxx rows=1 width=xxx)
2928 Index Cond: (c1 = b3t3.c1)
2929 -> Nested Loop (cost=xxx..xxx rows=10 width=xxx)
2930 Join Filter: (bmt1.c1 = bmt3.c1)
2931 -> Nested Loop (cost=xxx..xxx rows=10 width=xxx)
2932 Join Filter: (bmt1.c1 = bmt2.c1)
2933 -> Nested Loop (cost={inf}..{inf} rows=100 width=xxx)
2934 Join Filter: (b1t1.c1 = bmt1.c1)
2935 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
2936 Merge Cond: (b1t1.c1 = b1t2.c1)
2937 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1000 width=xxx)
2938 -> Sort (cost=xxx..xxx rows=1 width=xxx)
2940 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
2941 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
2942 Hash Cond: (b1t3.c1 = b1t4.c1)
2943 -> Seq Scan on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
2944 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
2945 -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
2946 -> Index Only Scan using t2_i1 on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
2947 Index Cond: (c1 = b1t3.c1)
2948 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
2949 Index Cond: (c1 = b1t3.c1)
2951 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
2952 Index Cond: (c1 = b1t3.c1)
2953 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1 width=xxx)
2954 Index Cond: (c1 = b1t3.c1)
2955 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
2956 Index Cond: (c1 = bmt3.c1)
2959 \o results/ut-R.tmpout
2961 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2962 Leading(b1t4 b1t3 b1t2 b1t1)
2964 HashJoin(c1 bmt4 bmt3)
2965 NestLoop(c1 bmt4 bmt3 bmt2)
2966 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2967 MergeJoin(b1t4 b1t3)
2968 HashJoin(b1t4 b1t3 b1t2)
2969 NestLoop(b1t4 b1t3 b1t2 b1t1)
2973 SELECT b1t1.c1 FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
2976 SELECT b2t1.c1 FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
2978 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1 AND bmt1.c1 = c1.c1
2980 SELECT b3t1.c1 FROM s1.t1 b3t1
2984 MergeJoin(b1t3 b1t4)
2985 HashJoin(b1t2 b1t3 b1t4)
2986 NestLoop(b1t1 b1t2 b1t3 b1t4)
2987 Leading(b1t4 b1t3 b1t2 b1t1)
2990 HashJoin(bmt3 bmt4 c1)
2991 NestLoop(bmt2 bmt3 bmt4 c1)
2992 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2993 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2998 \! sql/maskout.sh results/ut-R.tmpout
3000 ------------------------------------------------------------------------------------------------------------------------------
3001 Nested Loop (cost=xxx..xxx rows=10 width=xxx)
3002 Join Filter: (bmt1.c1 = bmt4.c1)
3003 InitPlan 1 (returns $0)
3004 -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
3005 Index Cond: (c1 = 1)
3006 InitPlan 2 (returns $1)
3007 -> Seq Scan on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
3008 -> Nested Loop (cost=xxx..xxx rows=10 width=xxx)
3009 Join Filter: (bmt1.c1 = bmt3.c1)
3010 -> Nested Loop (cost=xxx..xxx rows=10 width=xxx)
3011 Join Filter: (bmt2.c1 = bmt1.c1)
3012 -> Nested Loop (cost={inf}..{inf} rows=100 width=xxx)
3013 Join Filter: (b1t1.c1 = bmt2.c1)
3014 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
3015 -> Materialize (cost=xxx..xxx rows=100 width=xxx)
3016 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
3017 Join Filter: (b1t2.c1 = b1t1.c1)
3018 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
3019 Hash Cond: (b1t3.c1 = b1t2.c1)
3020 -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
3021 Merge Cond: (b1t3.c1 = b1t4.c1)
3022 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
3023 -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
3024 -> Hash (cost=xxx..xxx rows=100 width=xxx)
3025 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
3026 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
3027 Index Cond: (c1 = b1t3.c1)
3028 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
3029 Index Cond: (c1 = b1t3.c1)
3031 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1 width=xxx)
3032 Index Cond: (c1 = b1t3.c1)
3033 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
3034 Index Cond: (c1 = bmt3.c1)
3036 \o results/ut-R.tmpout
3038 Leading(c1 bmt4 bmt3 bmt2 bmt1)
3039 Leading(b1t4 b1t3 b1t2 b1t1)
3041 HashJoin(c1 bmt4 bmt3)
3042 NestLoop(c1 bmt4 bmt3 bmt2)
3043 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
3044 MergeJoin(b1t4 b1t3)
3045 HashJoin(b1t4 b1t3 b1t2)
3046 NestLoop(b1t4 b1t3 b1t2 b1t1)
3048 Rows(c1 bmt4 bmt3 #1)
3049 Rows(c1 bmt4 bmt3 bmt2 #1)
3050 Rows(c1 bmt4 bmt3 bmt2 bmt1 #1)
3052 Rows(b1t4 b1t3 b1t2 #1)
3053 Rows(b1t4 b1t3 b1t2 b1t1 #1)
3057 SELECT b1t1.c1 FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
3060 SELECT b2t1.c1 FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
3062 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1 AND bmt1.c1 = c1.c1
3064 SELECT b3t1.c1 FROM s1.t1 b3t1
3068 MergeJoin(b1t3 b1t4)
3069 HashJoin(b1t2 b1t3 b1t4)
3070 NestLoop(b1t1 b1t2 b1t3 b1t4)
3071 Leading(b1t4 b1t3 b1t2 b1t1)
3073 Rows(b1t2 b1t3 b1t4 #1)
3074 Rows(b1t1 b1t2 b1t3 b1t4 #1)
3077 HashJoin(bmt3 bmt4 c1)
3078 NestLoop(bmt2 bmt3 bmt4 c1)
3079 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
3080 Leading(c1 bmt4 bmt3 bmt2 bmt1)
3082 Rows(bmt3 bmt4 c1 #1)
3083 Rows(bmt2 bmt3 bmt4 c1 #1)
3084 Rows(bmt1 bmt2 bmt3 bmt4 c1 #1)
3089 \! sql/maskout.sh results/ut-R.tmpout
3091 ------------------------------------------------------------------------------------------------------------------------------
3092 Nested Loop (cost=xxx..xxx rows=10 width=xxx)
3093 Join Filter: (bmt1.c1 = bmt4.c1)
3094 InitPlan 1 (returns $0)
3095 -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
3096 Index Cond: (c1 = 1)
3097 InitPlan 2 (returns $1)
3098 -> Seq Scan on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
3099 -> Nested Loop (cost=xxx..xxx rows=10 width=xxx)
3100 Join Filter: (bmt1.c1 = bmt3.c1)
3101 -> Nested Loop (cost=xxx..xxx rows=10 width=xxx)
3102 Join Filter: (bmt2.c1 = bmt1.c1)
3103 -> Nested Loop (cost={inf}..{inf} rows=100 width=xxx)
3104 Join Filter: (b1t1.c1 = bmt2.c1)
3105 -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
3106 -> Materialize (cost=xxx..xxx rows=1 width=xxx)
3107 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3108 Join Filter: (b1t2.c1 = b1t1.c1)
3109 -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
3110 Hash Cond: (b1t3.c1 = b1t2.c1)
3111 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3112 Merge Cond: (b1t3.c1 = b1t4.c1)
3113 -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
3114 -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
3115 -> Hash (cost=xxx..xxx rows=100 width=xxx)
3116 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
3117 -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
3118 Index Cond: (c1 = b1t3.c1)
3119 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
3120 Index Cond: (c1 = b1t3.c1)
3122 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1 width=xxx)
3123 Index Cond: (c1 = b1t3.c1)
3124 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
3125 Index Cond: (c1 = bmt3.c1)
3128 ---- No. R-2-3 RULE or VIEW
3131 \o results/ut-R.tmpout
3133 Leading(r1 t1 t2 t3 t4)
3135 EXPLAIN UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1;
3138 Leading(r1 t1 t2 t3 t4)
3144 \! sql/maskout.sh results/ut-R.tmpout
3146 -----------------------------------------------------------------------------------------------
3147 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3148 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3149 Join Filter: (t1.c1 = t4.c1)
3150 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3151 Join Filter: (t1.c1 = t3.c1)
3152 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3153 Merge Cond: (t1.c1 = t2.c1)
3154 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3155 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
3156 Filter: (ctid = '(1,1)'::tid)
3157 -> Seq Scan on r1 (cost=xxx..xxx rows=6 width=xxx)
3159 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3161 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3162 Filter: (ctid = '(1,1)'::tid)
3163 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3164 TID Cond: (ctid = '(1,1)'::tid)
3165 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3166 TID Cond: (ctid = '(1,1)'::tid)
3168 \o results/ut-R.tmpout
3170 Leading(r1 t1 t2 t3 t4)
3171 Rows(r1 t1 t2 t3 t4 #2)
3172 Rows(r1 t1 t2 t3 #2)
3176 EXPLAIN UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1;
3179 Leading(r1 t1 t2 t3 t4)
3182 Rows(r1 t1 t2 t3 #2)
3183 Rows(r1 t1 t2 t3 t4 #2)
3189 \! sql/maskout.sh results/ut-R.tmpout
3191 ---------------------------------------------------------------------------------
3192 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3193 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3194 Join Filter: (t1.c1 = t4.c1)
3195 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3196 TID Cond: (ctid = '(1,1)'::tid)
3197 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3198 Join Filter: (t1.c1 = t3.c1)
3199 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3200 TID Cond: (ctid = '(1,1)'::tid)
3201 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3202 Join Filter: (t1.c1 = t2.c1)
3203 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3204 Filter: (ctid = '(1,1)'::tid)
3205 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3206 -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
3207 TID Cond: (ctid = '(1,1)'::tid)
3208 -> Seq Scan on r1 (cost=xxx..xxx rows=6 width=xxx)
3211 \o results/ut-R.tmpout
3213 Leading(r1_ b1t1 b1t2 b1t3 b1t4)
3215 EXPLAIN UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1;
3218 Leading(r1_ b1t1 b1t2 b1t3 b1t4)
3224 \! sql/maskout.sh results/ut-R.tmpout
3226 ----------------------------------------------------------------------------------------------------
3227 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3228 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3229 Join Filter: (b1t1.c1 = b1t4.c1)
3230 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3231 Join Filter: (b1t1.c1 = b1t3.c1)
3232 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3233 Merge Cond: (b1t1.c1 = b1t2.c1)
3234 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3235 -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
3236 Filter: (ctid = '(1,1)'::tid)
3237 -> Seq Scan on r1_ (cost=xxx..xxx rows=6 width=xxx)
3239 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3241 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
3242 Filter: (ctid = '(1,1)'::tid)
3243 -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
3244 TID Cond: (ctid = '(1,1)'::tid)
3245 -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
3246 TID Cond: (ctid = '(1,1)'::tid)
3248 \o results/ut-R.tmpout
3250 Leading(r1_ b1t1 b1t2 b1t3 b1t4)
3251 Rows(r1_ b1t1 b1t2 b1t3 b1t4 #2)
3252 Rows(r1_ b1t1 b1t2 b1t3 #2)
3253 Rows(r1_ b1t1 b1t2 #2)
3256 EXPLAIN UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1;
3259 Leading(r1_ b1t1 b1t2 b1t3 b1t4)
3261 Rows(b1t1 b1t2 r1_ #2)
3262 Rows(b1t1 b1t2 b1t3 r1_ #2)
3263 Rows(b1t1 b1t2 b1t3 b1t4 r1_ #2)
3269 \! sql/maskout.sh results/ut-R.tmpout
3271 -------------------------------------------------------------------------------------
3272 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3273 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3274 Join Filter: (b1t1.c1 = b1t4.c1)
3275 -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
3276 TID Cond: (ctid = '(1,1)'::tid)
3277 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3278 Join Filter: (b1t1.c1 = b1t3.c1)
3279 -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
3280 TID Cond: (ctid = '(1,1)'::tid)
3281 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3282 Join Filter: (b1t1.c1 = b1t2.c1)
3283 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
3284 Filter: (ctid = '(1,1)'::tid)
3285 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3286 -> Tid Scan on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
3287 TID Cond: (ctid = '(1,1)'::tid)
3288 -> Seq Scan on r1_ (cost=xxx..xxx rows=6 width=xxx)
3292 \o results/ut-R.tmpout
3294 Leading(r2 t1 t2 t3 t4)
3296 EXPLAIN UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1;
3299 Leading(r2 t1 t2 t3 t4)
3306 Leading(r2 t1 t2 t3 t4)
3312 \! sql/maskout.sh results/ut-R.tmpout
3314 -----------------------------------------------------------------------------------------------
3315 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3316 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3317 Join Filter: (t1.c1 = t4.c1)
3318 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3319 Join Filter: (t1.c1 = t3.c1)
3320 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3321 Merge Cond: (t1.c1 = t2.c1)
3322 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3323 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
3324 Filter: (ctid = '(1,1)'::tid)
3325 -> Seq Scan on r2 (cost=xxx..xxx rows=6 width=xxx)
3327 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3329 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3330 Filter: (ctid = '(1,1)'::tid)
3331 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3332 TID Cond: (ctid = '(1,1)'::tid)
3333 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3334 TID Cond: (ctid = '(1,1)'::tid)
3336 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3337 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3338 Join Filter: (t1.c1 = t4.c1)
3339 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3340 Join Filter: (t1.c1 = t3.c1)
3341 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3342 Merge Cond: (t1.c1 = t2.c1)
3343 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3344 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
3345 Filter: (ctid = '(1,1)'::tid)
3346 -> Seq Scan on r2 (cost=xxx..xxx rows=6 width=xxx)
3348 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3350 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3351 Filter: (ctid = '(1,1)'::tid)
3352 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3353 TID Cond: (ctid = '(1,1)'::tid)
3354 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3355 TID Cond: (ctid = '(1,1)'::tid)
3357 \o results/ut-R.tmpout
3359 Leading(r2 t1 t2 t3 t4)
3360 Rows(r2 t1 t2 t3 t4 #2)
3361 Rows(r2 t1 t2 t3 #2)
3365 EXPLAIN UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1;
3368 Leading(r2 t1 t2 t3 t4)
3371 Rows(r2 t1 t2 t3 #2)
3372 Rows(r2 t1 t2 t3 t4 #2)
3379 Leading(r2 t1 t2 t3 t4)
3382 Rows(r2 t1 t2 t3 #2)
3383 Rows(r2 t1 t2 t3 t4 #2)
3389 \! sql/maskout.sh results/ut-R.tmpout
3391 ---------------------------------------------------------------------------------
3392 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3393 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3394 Join Filter: (t1.c1 = t4.c1)
3395 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3396 TID Cond: (ctid = '(1,1)'::tid)
3397 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3398 Join Filter: (t1.c1 = t3.c1)
3399 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3400 TID Cond: (ctid = '(1,1)'::tid)
3401 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3402 Join Filter: (t1.c1 = t2.c1)
3403 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3404 Filter: (ctid = '(1,1)'::tid)
3405 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3406 -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
3407 TID Cond: (ctid = '(1,1)'::tid)
3408 -> Seq Scan on r2 (cost=xxx..xxx rows=6 width=xxx)
3411 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3412 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3413 Join Filter: (t1.c1 = t4.c1)
3414 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3415 TID Cond: (ctid = '(1,1)'::tid)
3416 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3417 Join Filter: (t1.c1 = t3.c1)
3418 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3419 TID Cond: (ctid = '(1,1)'::tid)
3420 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3421 Join Filter: (t1.c1 = t2.c1)
3422 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3423 Filter: (ctid = '(1,1)'::tid)
3424 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3425 -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
3426 TID Cond: (ctid = '(1,1)'::tid)
3427 -> Seq Scan on r2 (cost=xxx..xxx rows=6 width=xxx)
3430 \o results/ut-R.tmpout
3432 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
3433 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
3435 EXPLAIN UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1;
3438 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
3440 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
3446 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
3448 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
3453 \! sql/maskout.sh results/ut-R.tmpout
3455 ----------------------------------------------------------------------------------------------------
3456 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3457 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3458 Join Filter: (b1t1.c1 = b1t4.c1)
3459 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3460 Join Filter: (b1t1.c1 = b1t3.c1)
3461 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3462 Merge Cond: (b1t1.c1 = b1t2.c1)
3463 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3464 -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
3465 Filter: (ctid = '(1,1)'::tid)
3466 -> Seq Scan on r2_ (cost=xxx..xxx rows=6 width=xxx)
3468 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3470 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
3471 Filter: (ctid = '(1,1)'::tid)
3472 -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
3473 TID Cond: (ctid = '(1,1)'::tid)
3474 -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
3475 TID Cond: (ctid = '(1,1)'::tid)
3477 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3478 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3479 Join Filter: (b2t1.c1 = b2t4.c1)
3480 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3481 Join Filter: (b2t1.c1 = b2t3.c1)
3482 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3483 Merge Cond: (b2t1.c1 = b2t2.c1)
3484 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3485 -> Index Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
3486 Filter: (ctid = '(1,1)'::tid)
3487 -> Seq Scan on r2_ (cost=xxx..xxx rows=6 width=xxx)
3489 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3491 -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
3492 Filter: (ctid = '(1,1)'::tid)
3493 -> Tid Scan on t3 b2t3 (cost=xxx..xxx rows=1 width=xxx)
3494 TID Cond: (ctid = '(1,1)'::tid)
3495 -> Tid Scan on t4 b2t4 (cost=xxx..xxx rows=1 width=xxx)
3496 TID Cond: (ctid = '(1,1)'::tid)
3498 \o results/ut-R.tmpout
3500 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
3501 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
3503 Rows(r2_ b1t1 b1t2 #2)
3504 Rows(r2_ b1t1 b1t2 b1t3 #2)
3505 Rows(r2_ b1t1 b1t2 b1t3 b1t4 #2)
3507 Rows(r2_ b2t1 b2t2 #2)
3508 Rows(r2_ b2t1 b2t2 b2t3 #2)
3509 Rows(r2_ b2t1 b2t2 b2t3 b2t4 #2)
3511 EXPLAIN UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1;
3514 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
3516 Rows(b1t1 b1t2 r2_ #2)
3517 Rows(b1t1 b1t2 b1t3 r2_ #2)
3518 Rows(b1t1 b1t2 b1t3 b1t4 r2_ #2)
3520 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
3522 Rows(b2t1 b2t2 r2_ #2)
3523 Rows(b2t1 b2t2 b2t3 r2_ #2)
3524 Rows(b2t1 b2t2 b2t3 b2t4 r2_ #2)
3530 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
3532 Rows(b2t1 b2t2 r2_ #2)
3533 Rows(b2t1 b2t2 b2t3 r2_ #2)
3534 Rows(b2t1 b2t2 b2t3 b2t4 r2_ #2)
3536 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
3538 Rows(b1t1 b1t2 r2_ #2)
3539 Rows(b1t1 b1t2 b1t3 r2_ #2)
3540 Rows(b1t1 b1t2 b1t3 b1t4 r2_ #2)
3545 \! sql/maskout.sh results/ut-R.tmpout
3547 -------------------------------------------------------------------------------------
3548 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3549 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3550 Join Filter: (b1t1.c1 = b1t4.c1)
3551 -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
3552 TID Cond: (ctid = '(1,1)'::tid)
3553 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3554 Join Filter: (b1t1.c1 = b1t3.c1)
3555 -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
3556 TID Cond: (ctid = '(1,1)'::tid)
3557 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3558 Join Filter: (b1t1.c1 = b1t2.c1)
3559 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
3560 Filter: (ctid = '(1,1)'::tid)
3561 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3562 -> Tid Scan on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
3563 TID Cond: (ctid = '(1,1)'::tid)
3564 -> Seq Scan on r2_ (cost=xxx..xxx rows=6 width=xxx)
3567 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3568 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3569 Join Filter: (b2t1.c1 = b2t4.c1)
3570 -> Tid Scan on t4 b2t4 (cost=xxx..xxx rows=1 width=xxx)
3571 TID Cond: (ctid = '(1,1)'::tid)
3572 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3573 Join Filter: (b2t1.c1 = b2t3.c1)
3574 -> Tid Scan on t3 b2t3 (cost=xxx..xxx rows=1 width=xxx)
3575 TID Cond: (ctid = '(1,1)'::tid)
3576 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3577 Join Filter: (b2t1.c1 = b2t2.c1)
3578 -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
3579 Filter: (ctid = '(1,1)'::tid)
3580 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3581 -> Tid Scan on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
3582 TID Cond: (ctid = '(1,1)'::tid)
3583 -> Seq Scan on r2_ (cost=xxx..xxx rows=6 width=xxx)
3587 \o results/ut-R.tmpout
3589 Leading(r3 t1 t2 t3 t4)
3591 EXPLAIN UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1;
3594 Leading(r3 t1 t2 t3 t4)
3601 Leading(r3 t1 t2 t3 t4)
3608 Leading(r3 t1 t2 t3 t4)
3614 \! sql/maskout.sh results/ut-R.tmpout
3616 -----------------------------------------------------------------------------------------------
3617 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3618 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3619 Join Filter: (t1.c1 = t4.c1)
3620 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3621 Join Filter: (t1.c1 = t3.c1)
3622 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3623 Merge Cond: (t1.c1 = t2.c1)
3624 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3625 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
3626 Filter: (ctid = '(1,1)'::tid)
3627 -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
3629 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3631 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3632 Filter: (ctid = '(1,1)'::tid)
3633 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3634 TID Cond: (ctid = '(1,1)'::tid)
3635 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3636 TID Cond: (ctid = '(1,1)'::tid)
3638 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3639 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3640 Join Filter: (t1.c1 = t4.c1)
3641 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3642 Join Filter: (t1.c1 = t3.c1)
3643 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3644 Merge Cond: (t1.c1 = t2.c1)
3645 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3646 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
3647 Filter: (ctid = '(1,1)'::tid)
3648 -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
3650 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3652 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3653 Filter: (ctid = '(1,1)'::tid)
3654 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3655 TID Cond: (ctid = '(1,1)'::tid)
3656 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3657 TID Cond: (ctid = '(1,1)'::tid)
3659 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3660 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3661 Join Filter: (t1.c1 = t4.c1)
3662 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3663 Join Filter: (t1.c1 = t3.c1)
3664 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3665 Merge Cond: (t1.c1 = t2.c1)
3666 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3667 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
3668 Filter: (ctid = '(1,1)'::tid)
3669 -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
3671 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3673 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3674 Filter: (ctid = '(1,1)'::tid)
3675 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3676 TID Cond: (ctid = '(1,1)'::tid)
3677 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3678 TID Cond: (ctid = '(1,1)'::tid)
3680 \o results/ut-R.tmpout
3682 Leading(r3 t1 t2 t3 t4)
3683 Rows(r3 t1 t2 t3 t4 #2)
3684 Rows(r3 t1 t2 t3 #2)
3688 EXPLAIN UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1;
3691 Leading(r3 t1 t2 t3 t4)
3694 Rows(r3 t1 t2 t3 #2)
3695 Rows(r3 t1 t2 t3 t4 #2)
3702 Leading(r3 t1 t2 t3 t4)
3705 Rows(r3 t1 t2 t3 #2)
3706 Rows(r3 t1 t2 t3 t4 #2)
3713 Leading(r3 t1 t2 t3 t4)
3716 Rows(r3 t1 t2 t3 #2)
3717 Rows(r3 t1 t2 t3 t4 #2)
3723 \! sql/maskout.sh results/ut-R.tmpout
3725 ---------------------------------------------------------------------------------
3726 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3727 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3728 Join Filter: (t1.c1 = t4.c1)
3729 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3730 TID Cond: (ctid = '(1,1)'::tid)
3731 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3732 Join Filter: (t1.c1 = t3.c1)
3733 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3734 TID Cond: (ctid = '(1,1)'::tid)
3735 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3736 Join Filter: (t1.c1 = t2.c1)
3737 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3738 Filter: (ctid = '(1,1)'::tid)
3739 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3740 -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
3741 TID Cond: (ctid = '(1,1)'::tid)
3742 -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
3745 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3746 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3747 Join Filter: (t1.c1 = t4.c1)
3748 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3749 TID Cond: (ctid = '(1,1)'::tid)
3750 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3751 Join Filter: (t1.c1 = t3.c1)
3752 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3753 TID Cond: (ctid = '(1,1)'::tid)
3754 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3755 Join Filter: (t1.c1 = t2.c1)
3756 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3757 Filter: (ctid = '(1,1)'::tid)
3758 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3759 -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
3760 TID Cond: (ctid = '(1,1)'::tid)
3761 -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
3764 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3765 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3766 Join Filter: (t1.c1 = t4.c1)
3767 -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
3768 TID Cond: (ctid = '(1,1)'::tid)
3769 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3770 Join Filter: (t1.c1 = t3.c1)
3771 -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
3772 TID Cond: (ctid = '(1,1)'::tid)
3773 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3774 Join Filter: (t1.c1 = t2.c1)
3775 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
3776 Filter: (ctid = '(1,1)'::tid)
3777 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3778 -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
3779 TID Cond: (ctid = '(1,1)'::tid)
3780 -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
3783 \o results/ut-R.tmpout
3785 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
3786 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
3787 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
3789 EXPLAIN UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1;
3792 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
3794 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
3795 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
3801 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
3803 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
3804 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
3810 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
3812 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
3813 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
3818 \! sql/maskout.sh results/ut-R.tmpout
3820 ----------------------------------------------------------------------------------------------------
3821 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3822 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3823 Join Filter: (b1t1.c1 = b1t4.c1)
3824 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3825 Join Filter: (b1t1.c1 = b1t3.c1)
3826 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3827 Merge Cond: (b1t1.c1 = b1t2.c1)
3828 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3829 -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
3830 Filter: (ctid = '(1,1)'::tid)
3831 -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
3833 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3835 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
3836 Filter: (ctid = '(1,1)'::tid)
3837 -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
3838 TID Cond: (ctid = '(1,1)'::tid)
3839 -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
3840 TID Cond: (ctid = '(1,1)'::tid)
3842 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3843 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3844 Join Filter: (b2t1.c1 = b2t4.c1)
3845 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3846 Join Filter: (b2t1.c1 = b2t3.c1)
3847 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3848 Merge Cond: (b2t1.c1 = b2t2.c1)
3849 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3850 -> Index Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
3851 Filter: (ctid = '(1,1)'::tid)
3852 -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
3854 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3856 -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
3857 Filter: (ctid = '(1,1)'::tid)
3858 -> Tid Scan on t3 b2t3 (cost=xxx..xxx rows=1 width=xxx)
3859 TID Cond: (ctid = '(1,1)'::tid)
3860 -> Tid Scan on t4 b2t4 (cost=xxx..xxx rows=1 width=xxx)
3861 TID Cond: (ctid = '(1,1)'::tid)
3863 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3864 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3865 Join Filter: (b3t1.c1 = b3t4.c1)
3866 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
3867 Join Filter: (b3t1.c1 = b3t3.c1)
3868 -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
3869 Merge Cond: (b3t1.c1 = b3t2.c1)
3870 -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
3871 -> Index Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1 width=xxx)
3872 Filter: (ctid = '(1,1)'::tid)
3873 -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
3875 -> Sort (cost=xxx..xxx rows=1 width=xxx)
3877 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=1 width=xxx)
3878 Filter: (ctid = '(1,1)'::tid)
3879 -> Tid Scan on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
3880 TID Cond: (ctid = '(1,1)'::tid)
3881 -> Tid Scan on t4 b3t4 (cost=xxx..xxx rows=1 width=xxx)
3882 TID Cond: (ctid = '(1,1)'::tid)
3884 \o results/ut-R.tmpout
3886 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
3887 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
3888 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
3890 Rows(r3_ b1t1 b1t2 #2)
3891 Rows(r3_ b1t1 b1t2 b1t3 #2)
3892 Rows(r3_ b1t1 b1t2 b1t3 b1t4 #2)
3894 Rows(r3_ b2t1 b2t2 #2)
3895 Rows(r3_ b2t1 b2t2 b2t3 #2)
3896 Rows(r3_ b2t1 b2t2 b2t3 b2t4 #2)
3898 Rows(r3_ b3t1 b3t2 #2)
3899 Rows(r3_ b3t1 b3t2 b3t3 #2)
3900 Rows(r3_ b3t1 b3t2 b3t3 b3t4 #2)
3902 EXPLAIN UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1;
3905 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
3907 Rows(b1t1 b1t2 r3_ #2)
3908 Rows(b1t1 b1t2 b1t3 r3_ #2)
3909 Rows(b1t1 b1t2 b1t3 b1t4 r3_ #2)
3911 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
3912 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
3915 Rows(b2t1 b2t2 r3_ #2)
3916 Rows(b3t1 b3t2 r3_ #2)
3917 Rows(b2t1 b2t2 b2t3 r3_ #2)
3918 Rows(b3t1 b3t2 b3t3 r3_ #2)
3919 Rows(b2t1 b2t2 b2t3 b2t4 r3_ #2)
3920 Rows(b3t1 b3t2 b3t3 b3t4 r3_ #2)
3926 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
3928 Rows(b2t1 b2t2 r3_ #2)
3929 Rows(b2t1 b2t2 b2t3 r3_ #2)
3930 Rows(b2t1 b2t2 b2t3 b2t4 r3_ #2)
3932 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
3933 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
3936 Rows(b1t1 b1t2 r3_ #2)
3937 Rows(b3t1 b3t2 r3_ #2)
3938 Rows(b1t1 b1t2 b1t3 r3_ #2)
3939 Rows(b3t1 b3t2 b3t3 r3_ #2)
3940 Rows(b1t1 b1t2 b1t3 b1t4 r3_ #2)
3941 Rows(b3t1 b3t2 b3t3 b3t4 r3_ #2)
3947 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
3949 Rows(b3t1 b3t2 r3_ #2)
3950 Rows(b3t1 b3t2 b3t3 r3_ #2)
3951 Rows(b3t1 b3t2 b3t3 b3t4 r3_ #2)
3953 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
3954 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
3957 Rows(b1t1 b1t2 r3_ #2)
3958 Rows(b2t1 b2t2 r3_ #2)
3959 Rows(b1t1 b1t2 b1t3 r3_ #2)
3960 Rows(b2t1 b2t2 b2t3 r3_ #2)
3961 Rows(b1t1 b1t2 b1t3 b1t4 r3_ #2)
3962 Rows(b2t1 b2t2 b2t3 b2t4 r3_ #2)
3967 \! sql/maskout.sh results/ut-R.tmpout
3969 -------------------------------------------------------------------------------------
3970 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3971 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3972 Join Filter: (b1t1.c1 = b1t4.c1)
3973 -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
3974 TID Cond: (ctid = '(1,1)'::tid)
3975 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3976 Join Filter: (b1t1.c1 = b1t3.c1)
3977 -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
3978 TID Cond: (ctid = '(1,1)'::tid)
3979 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3980 Join Filter: (b1t1.c1 = b1t2.c1)
3981 -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
3982 Filter: (ctid = '(1,1)'::tid)
3983 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3984 -> Tid Scan on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
3985 TID Cond: (ctid = '(1,1)'::tid)
3986 -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
3989 Aggregate (cost=xxx..xxx rows=1 width=xxx)
3990 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3991 Join Filter: (b2t1.c1 = b2t4.c1)
3992 -> Tid Scan on t4 b2t4 (cost=xxx..xxx rows=1 width=xxx)
3993 TID Cond: (ctid = '(1,1)'::tid)
3994 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3995 Join Filter: (b2t1.c1 = b2t3.c1)
3996 -> Tid Scan on t3 b2t3 (cost=xxx..xxx rows=1 width=xxx)
3997 TID Cond: (ctid = '(1,1)'::tid)
3998 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
3999 Join Filter: (b2t1.c1 = b2t2.c1)
4000 -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
4001 Filter: (ctid = '(1,1)'::tid)
4002 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
4003 -> Tid Scan on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
4004 TID Cond: (ctid = '(1,1)'::tid)
4005 -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
4008 Aggregate (cost=xxx..xxx rows=1 width=xxx)
4009 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
4010 Join Filter: (b3t1.c1 = b3t4.c1)
4011 -> Tid Scan on t4 b3t4 (cost=xxx..xxx rows=1 width=xxx)
4012 TID Cond: (ctid = '(1,1)'::tid)
4013 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
4014 Join Filter: (b3t1.c1 = b3t3.c1)
4015 -> Tid Scan on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
4016 TID Cond: (ctid = '(1,1)'::tid)
4017 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
4018 Join Filter: (b3t1.c1 = b3t2.c1)
4019 -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=1 width=xxx)
4020 Filter: (ctid = '(1,1)'::tid)
4021 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
4022 -> Tid Scan on t1 b3t1 (cost=xxx..xxx rows=1 width=xxx)
4023 TID Cond: (ctid = '(1,1)'::tid)
4024 -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
4028 \o results/ut-R.tmpout
4029 /*+HashJoin(v1t1 v1t1)*/
4030 EXPLAIN SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
4031 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(v1t1 v1t1)"
4032 DETAIL: Relation name "v1t1" is ambiguous.
4041 \! sql/maskout.sh results/ut-R.tmpout
4043 --------------------------------------------------------------------------
4044 Hash Join (cost=xxx..xxx rows=1000 width=xxx)
4045 Hash Cond: (v1t1.c1 = v1t1_1.c1)
4046 -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
4047 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
4048 -> Seq Scan on t1 v1t1_1 (cost=xxx..xxx rows=1000 width=xxx)
4050 \o results/ut-R.tmpout
4051 /*+HashJoin(v1t1 v1t1)Rows(v1t1 v1t1 #1)*/
4052 EXPLAIN SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
4053 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(v1t1 v1t1)Rows(v1t1 v1t1 #1)"
4054 DETAIL: Relation name "v1t1" is ambiguous.
4055 INFO: pg_hint_plan: hint syntax error at or near "Rows(v1t1 v1t1 #1)"
4056 DETAIL: Relation name "v1t1" is ambiguous.
4066 \! sql/maskout.sh results/ut-R.tmpout
4068 --------------------------------------------------------------------------
4069 Hash Join (cost=xxx..xxx rows=1000 width=xxx)
4070 Hash Cond: (v1t1.c1 = v1t1_1.c1)
4071 -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
4072 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
4073 -> Seq Scan on t1 v1t1_1 (cost=xxx..xxx rows=1000 width=xxx)
4076 \o results/ut-R.tmpout
4077 /*+NestLoop(v1t1 v1t1_)*/
4078 EXPLAIN SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
4081 NestLoop(v1t1 v1t1_)
4087 \! sql/maskout.sh results/ut-R.tmpout
4089 -----------------------------------------------------------------------------
4090 Nested Loop (cost=xxx..xxx rows=1000 width=xxx)
4091 -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
4092 -> Index Scan using t1_i1 on t1 v1t1_ (cost=xxx..xxx rows=1 width=xxx)
4093 Index Cond: (c1 = v1t1.c1)
4095 \o results/ut-R.tmpout
4096 /*+NestLoop(v1t1 v1t1_)Rows(v1t1 v1t1_ #1)*/
4097 EXPLAIN SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
4100 NestLoop(v1t1 v1t1_)
4107 \! sql/maskout.sh results/ut-R.tmpout
4109 -----------------------------------------------------------------------------
4110 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4111 -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
4112 -> Index Scan using t1_i1 on t1 v1t1_ (cost=xxx..xxx rows=1 width=xxx)
4113 Index Cond: (c1 = v1t1.c1)
4116 \o results/ut-R.tmpout
4117 /*+RowsHashJoin(r4t1 r4t1)*/
4118 EXPLAIN SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
4119 INFO: pg_hint_plan: hint syntax error at or near "RowsHashJoin(r4t1 r4t1)"
4120 DETAIL: Unrecognized hint keyword "RowsHashJoin".
4122 \! sql/maskout.sh results/ut-R.tmpout
4124 --------------------------------------------------------------------------
4125 Hash Join (cost=xxx..xxx rows=1000 width=xxx)
4126 Hash Cond: (r4t1.c1 = r4t1_1.c1)
4127 -> Seq Scan on t1 r4t1 (cost=xxx..xxx rows=1000 width=xxx)
4128 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
4129 -> Seq Scan on t1 r4t1_1 (cost=xxx..xxx rows=1000 width=xxx)
4131 \o results/ut-R.tmpout
4132 /*+RowsHashJoin(r4t1 r4t1)Rows(r4t1 r4t1 #1)*/
4133 EXPLAIN SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
4134 INFO: pg_hint_plan: hint syntax error at or near "RowsHashJoin(r4t1 r4t1)Rows(r4t1 r4t1 #1)"
4135 DETAIL: Unrecognized hint keyword "RowsHashJoin".
4137 \! sql/maskout.sh results/ut-R.tmpout
4139 --------------------------------------------------------------------------
4140 Hash Join (cost=xxx..xxx rows=1000 width=xxx)
4141 Hash Cond: (r4t1.c1 = r4t1_1.c1)
4142 -> Seq Scan on t1 r4t1 (cost=xxx..xxx rows=1000 width=xxx)
4143 -> Hash (cost=xxx..xxx rows=1000 width=xxx)
4144 -> Seq Scan on t1 r4t1_1 (cost=xxx..xxx rows=1000 width=xxx)
4147 \o results/ut-R.tmpout
4148 /*+NestLoop(r4t1 r5t1)*/
4149 EXPLAIN SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
4158 \! sql/maskout.sh results/ut-R.tmpout
4160 ----------------------------------------------------------------------------
4161 Nested Loop (cost=xxx..xxx rows=1000 width=xxx)
4162 -> Seq Scan on t1 r4t1 (cost=xxx..xxx rows=1000 width=xxx)
4163 -> Index Scan using t1_i1 on t1 r5t1 (cost=xxx..xxx rows=1 width=xxx)
4164 Index Cond: (c1 = r4t1.c1)
4166 \o results/ut-R.tmpout
4167 /*+NestLoop(r4t1 r5t1)Rows(r4t1 r5t1 #1)*/
4168 EXPLAIN SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
4178 \! sql/maskout.sh results/ut-R.tmpout
4180 ----------------------------------------------------------------------------
4181 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4182 -> Seq Scan on t1 r4t1 (cost=xxx..xxx rows=1000 width=xxx)
4183 -> Index Scan using t1_i1 on t1 r5t1 (cost=xxx..xxx rows=1 width=xxx)
4184 Index Cond: (c1 = r4t1.c1)
4187 ---- No. R-2-4 VALUES clause
4190 \o results/ut-R.tmpout
4191 EXPLAIN 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;
4193 \! sql/maskout.sh results/ut-R.tmpout
4195 --------------------------------------------------------------------------------
4196 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4197 -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
4198 Hash Cond: (t2.c1 = "*VALUES*".column1)
4199 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4200 -> Hash (cost=xxx..xxx rows=2 width=xxx)
4201 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
4202 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
4203 Index Cond: (c1 = t2.c1)
4205 \o results/ut-R.tmpout
4206 /*+ Leading(t3 t1 t2) Rows(t3 t1 #2)Rows(t3 t1 t2 #2)*/
4207 EXPLAIN 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;
4218 \! sql/maskout.sh results/ut-R.tmpout
4220 --------------------------------------------------------------------------------
4221 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4222 -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
4223 Hash Cond: (t2.c1 = "*VALUES*".column1)
4224 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4225 -> Hash (cost=xxx..xxx rows=2 width=xxx)
4226 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
4227 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
4228 Index Cond: (c1 = t2.c1)
4230 \o results/ut-R.tmpout
4231 /*+ Leading(*VALUES* t1 t2) Rows(*VALUES* t1 #2)Rows(*VALUES* t1 t2 #20)*/
4232 EXPLAIN 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;
4235 Leading(*VALUES* t1 t2)
4236 Rows(*VALUES* t1 #2)
4237 Rows(*VALUES* t1 t2 #20)
4243 \! sql/maskout.sh results/ut-R.tmpout
4245 -----------------------------------------------------------------------------
4246 Nested Loop (cost=xxx..xxx rows=20 width=xxx)
4247 -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
4248 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
4249 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
4250 Index Cond: (c1 = "*VALUES*".column1)
4251 -> Index Scan using t2_i1 on t2 (cost=xxx..xxx rows=1 width=xxx)
4252 Index Cond: (c1 = t1.c1)
4255 \o results/ut-R.tmpout
4256 EXPLAIN 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;
4258 \! sql/maskout.sh results/ut-R.tmpout
4260 --------------------------------------------------------------------------------------
4261 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4262 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4263 Join Filter: (t2.c1 = "*VALUES*_1".column1)
4264 -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
4265 Hash Cond: (t2.c1 = "*VALUES*".column1)
4266 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4267 -> Hash (cost=xxx..xxx rows=2 width=xxx)
4268 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
4269 -> Materialize (cost=xxx..xxx rows=2 width=xxx)
4270 -> Values Scan on "*VALUES*_1" (cost=xxx..xxx rows=2 width=xxx)
4271 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
4272 Index Cond: (c1 = t2.c1)
4274 \o results/ut-R.tmpout
4275 /*+ Leading(t4 t3 t2 t1) Rows(t4 t3 #2) Rows(t4 t3 t2 #2)Rows(t4 t3 t2 t1 #2)*/
4276 EXPLAIN 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;
4280 Leading(t4 t3 t2 t1)
4283 Rows(t1 t2 t3 t4 #2)
4288 \! sql/maskout.sh results/ut-R.tmpout
4290 --------------------------------------------------------------------------------------
4291 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4292 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4293 Join Filter: (t2.c1 = "*VALUES*_1".column1)
4294 -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
4295 Hash Cond: (t2.c1 = "*VALUES*".column1)
4296 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4297 -> Hash (cost=xxx..xxx rows=2 width=xxx)
4298 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
4299 -> Materialize (cost=xxx..xxx rows=2 width=xxx)
4300 -> Values Scan on "*VALUES*_1" (cost=xxx..xxx rows=2 width=xxx)
4301 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
4302 Index Cond: (c1 = t2.c1)
4304 \o results/ut-R.tmpout
4305 /*+ Leading(*VALUES* t3 t2 t1) Rows(t4 t3 #2)Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)*/
4306 EXPLAIN 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;
4307 INFO: pg_hint_plan: hint syntax error at or near "Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)"
4308 DETAIL: Relation name "*VALUES*" is ambiguous.
4309 INFO: pg_hint_plan: hint syntax error at or near "Rows(*VALUES* t3 t2 t1 #2)"
4310 DETAIL: Relation name "*VALUES*" is ambiguous.
4311 INFO: pg_hint_plan: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) Rows(t4 t3 #2)Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)"
4312 DETAIL: Relation name "*VALUES*" is ambiguous.
4319 Leading(*VALUES* t3 t2 t1)
4320 Rows(*VALUES* t2 t3 #2)
4321 Rows(*VALUES* t1 t2 t3 #2)
4324 \! sql/maskout.sh results/ut-R.tmpout
4326 --------------------------------------------------------------------------------------
4327 Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4328 -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
4329 Join Filter: (t2.c1 = "*VALUES*_1".column1)
4330 -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
4331 Hash Cond: (t2.c1 = "*VALUES*".column1)
4332 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4333 -> Hash (cost=xxx..xxx rows=2 width=xxx)
4334 -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
4335 -> Materialize (cost=xxx..xxx rows=2 width=xxx)
4336 -> Values Scan on "*VALUES*_1" (cost=xxx..xxx rows=2 width=xxx)
4337 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
4338 Index Cond: (c1 = t2.c1)
4344 \o results/ut-R.tmpout
4345 EXPLAIN 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.c1 = sbmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
4347 \! sql/maskout.sh results/ut-R.tmpout
4349 ------------------------------------------------------------------------------------------------------
4350 Aggregate (cost=xxx..xxx rows=1 width=xxx)
4351 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
4352 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
4353 Merge Cond: (bmt1.c1 = bmt2.c1)
4354 -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
4355 Merge Cond: (bmt1.c1 = bmt3.c1)
4356 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
4357 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
4358 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4360 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
4361 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
4362 Index Cond: (c1 = bmt1.c1)
4364 \o results/ut-R.tmpout
4366 Leading(bmt4 bmt3 bmt2 bmt1)
4367 Rows(bmt1 bmt2 bmt3 bmt4 *0.7)
4369 EXPLAIN SELECT 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.c1 = sbmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
4372 Leading(bmt4 bmt3 bmt2 bmt1)
4373 Rows(bmt1 bmt2 bmt3 bmt4 *0.7)
4379 \! sql/maskout.sh results/ut-R.tmpout
4381 -----------------------------------------------------------------------------------------
4382 Merge Join (cost=xxx..xxx rows=70 width=xxx)
4383 Merge Cond: (bmt1.c1 = bmt2.c1)
4384 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
4385 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4387 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
4388 Hash Cond: (bmt3.c1 = bmt2.c1)
4389 -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
4390 Hash Cond: (bmt3.c1 = bmt4.c1)
4391 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
4392 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
4393 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
4394 -> Hash (cost=xxx..xxx rows=100 width=xxx)
4395 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
4398 \o results/ut-R.tmpout
4399 EXPLAIN SELECT 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.c1 = sbmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
4401 \! sql/maskout.sh results/ut-R.tmpout
4403 ------------------------------------------------------------------------------------------------
4404 Nested Loop (cost=xxx..xxx rows=100 width=xxx)
4405 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
4406 Merge Cond: (bmt1.c1 = bmt2.c1)
4407 -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
4408 Merge Cond: (bmt1.c1 = bmt3.c1)
4409 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
4410 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
4411 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4413 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
4414 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
4415 Index Cond: (c1 = bmt1.c1)
4417 \o results/ut-R.tmpout
4419 Leading(bmt4 bmt3 bmt2 bmt1)
4420 Rows(bmt4 bmt3 *0.6)
4422 EXPLAIN SELECT 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.c1 = sbmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
4425 Leading(bmt4 bmt3 bmt2 bmt1)
4426 Rows(bmt3 bmt4 *0.6)
4432 \! sql/maskout.sh results/ut-R.tmpout
4434 -----------------------------------------------------------------------------------------
4435 Merge Join (cost=xxx..xxx rows=60 width=xxx)
4436 Merge Cond: (bmt1.c1 = bmt2.c1)
4437 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
4438 -> Sort (cost=xxx..xxx rows=60 width=xxx)
4440 -> Hash Join (cost=xxx..xxx rows=60 width=xxx)
4441 Hash Cond: (bmt3.c1 = bmt2.c1)
4442 -> Hash Join (cost=xxx..xxx rows=678 width=xxx)
4443 Hash Cond: (bmt3.c1 = bmt4.c1)
4444 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
4445 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
4446 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
4447 -> Hash (cost=xxx..xxx rows=100 width=xxx)
4448 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
4451 \o results/ut-R.tmpout
4452 EXPLAIN SELECT 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.c1 = sbmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
4454 \! sql/maskout.sh results/ut-R.tmpout
4456 ------------------------------------------------------------------------------------------------
4457 Nested Loop (cost=xxx..xxx rows=100 width=xxx)
4458 -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
4459 Merge Cond: (bmt1.c1 = bmt2.c1)
4460 -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
4461 Merge Cond: (bmt1.c1 = bmt3.c1)
4462 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
4463 -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
4464 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4466 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
4467 -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
4468 Index Cond: (c1 = bmt1.c1)
4470 \o results/ut-R.tmpout
4472 Leading(bmt4 bmt3 bmt2 bmt1)
4473 Rows(bmt4 bmt1 *0.5)
4475 EXPLAIN SELECT 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.c1 = sbmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
4478 Leading(bmt4 bmt3 bmt2 bmt1)
4479 Rows(bmt1 bmt4 *0.5)
4485 \! sql/maskout.sh results/ut-R.tmpout
4487 -----------------------------------------------------------------------------------------
4488 Merge Join (cost=xxx..xxx rows=50 width=xxx)
4489 Merge Cond: (bmt1.c1 = bmt2.c1)
4490 -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
4491 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4493 -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
4494 Hash Cond: (bmt3.c1 = bmt2.c1)
4495 -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
4496 Hash Cond: (bmt3.c1 = bmt4.c1)
4497 -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
4498 -> Hash (cost=xxx..xxx rows=1130 width=xxx)
4499 -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
4500 -> Hash (cost=xxx..xxx rows=100 width=xxx)
4501 -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
4504 ---- No. R-3-1 abusolute value
4507 \o results/ut-R.tmpout
4509 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4510 WARNING: Force estimate to be at least one row, to avoid possible divide-by-zero when interpolating costs : Rows(t1 t2 #0)
4519 \! sql/maskout.sh results/ut-R.tmpout
4521 ---------------------------------------------------------------------------
4522 Merge Join (cost=xxx..xxx rows=1 width=xxx)
4523 Merge Cond: (t1.c1 = t2.c1)
4524 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4525 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4527 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4530 \o results/ut-R.tmpout
4532 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4541 \! sql/maskout.sh results/ut-R.tmpout
4543 ---------------------------------------------------------------------------
4544 Merge Join (cost=xxx..xxx rows=5 width=xxx)
4545 Merge Cond: (t1.c1 = t2.c1)
4546 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4547 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4549 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4552 ---- No. R-3-2 increase or decrease value
4555 \o results/ut-R.tmpout
4557 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4566 \! sql/maskout.sh results/ut-R.tmpout
4568 ---------------------------------------------------------------------------
4569 Merge Join (cost=xxx..xxx rows=101 width=xxx)
4570 Merge Cond: (t1.c1 = t2.c1)
4571 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4572 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4574 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4577 \o results/ut-R.tmpout
4579 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4588 \! sql/maskout.sh results/ut-R.tmpout
4590 ---------------------------------------------------------------------------
4591 Merge Join (cost=xxx..xxx rows=99 width=xxx)
4592 Merge Cond: (t1.c1 = t2.c1)
4593 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4594 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4596 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4599 \o results/ut-R.tmpout
4600 /*+Rows(t1 t2 -1000)*/
4601 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4602 WARNING: Force estimate to be at least one row, to avoid possible divide-by-zero when interpolating costs : Rows(t1 t2 -1000)
4611 \! sql/maskout.sh results/ut-R.tmpout
4613 ---------------------------------------------------------------------------
4614 Merge Join (cost=xxx..xxx rows=1 width=xxx)
4615 Merge Cond: (t1.c1 = t2.c1)
4616 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4617 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4619 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4622 ---- No. R-3-3 multiple
4625 \o results/ut-R.tmpout
4627 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4628 WARNING: Force estimate to be at least one row, to avoid possible divide-by-zero when interpolating costs : Rows(t1 t2 *0)
4637 \! sql/maskout.sh results/ut-R.tmpout
4639 ---------------------------------------------------------------------------
4640 Merge Join (cost=xxx..xxx rows=1 width=xxx)
4641 Merge Cond: (t1.c1 = t2.c1)
4642 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4643 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4645 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4648 \o results/ut-R.tmpout
4650 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4659 \! sql/maskout.sh results/ut-R.tmpout
4661 ---------------------------------------------------------------------------
4662 Merge Join (cost=xxx..xxx rows=200 width=xxx)
4663 Merge Cond: (t1.c1 = t2.c1)
4664 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4665 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4667 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4670 \o results/ut-R.tmpout
4671 /*+Rows(t1 t2 *0.1)*/
4672 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4681 \! sql/maskout.sh results/ut-R.tmpout
4683 ---------------------------------------------------------------------------
4684 Merge Join (cost=xxx..xxx rows=10 width=xxx)
4685 Merge Cond: (t1.c1 = t2.c1)
4686 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4687 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4689 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4692 ---- No. R-3-4 join inherit tables
4695 \o results/ut-R.tmpout
4696 EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4698 \! sql/maskout.sh results/ut-R.tmpout
4700 ------------------------------------------------------------------------------
4701 Hash Join (cost=xxx..xxx rows=301 width=xxx)
4702 Hash Cond: (p2.c1 = p1.c1)
4703 -> Append (cost=xxx..xxx rows=304 width=xxx)
4704 -> Seq Scan on p2 p2_1 (cost=xxx..xxx rows=1 width=xxx)
4705 -> Seq Scan on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx)
4706 -> Seq Scan on p2c2 p2_3 (cost=xxx..xxx rows=1 width=xxx)
4707 -> Seq Scan on p2c3 p2_4 (cost=xxx..xxx rows=1 width=xxx)
4708 -> Seq Scan on p2c1c1 p2_5 (cost=xxx..xxx rows=50 width=xxx)
4709 -> Seq Scan on p2c1c2 p2_6 (cost=xxx..xxx rows=50 width=xxx)
4710 -> Seq Scan on p2c2c1 p2_7 (cost=xxx..xxx rows=50 width=xxx)
4711 -> Seq Scan on p2c2c2 p2_8 (cost=xxx..xxx rows=50 width=xxx)
4712 -> Seq Scan on p2c3c1 p2_9 (cost=xxx..xxx rows=50 width=xxx)
4713 -> Seq Scan on p2c3c2 p2_10 (cost=xxx..xxx rows=50 width=xxx)
4714 -> Hash (cost=xxx..xxx rows=301 width=xxx)
4715 -> Append (cost=xxx..xxx rows=301 width=xxx)
4716 -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx)
4717 -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=100 width=xxx)
4718 -> Seq Scan on p1c2 p1_3 (cost=xxx..xxx rows=100 width=xxx)
4719 -> Seq Scan on p1c3 p1_4 (cost=xxx..xxx rows=100 width=xxx)
4721 \o results/ut-R.tmpout
4723 EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4732 \! sql/maskout.sh results/ut-R.tmpout
4734 ------------------------------------------------------------------------------
4735 Hash Join (cost=xxx..xxx rows=1 width=xxx)
4736 Hash Cond: (p2.c1 = p1.c1)
4737 -> Append (cost=xxx..xxx rows=304 width=xxx)
4738 -> Seq Scan on p2 p2_1 (cost=xxx..xxx rows=1 width=xxx)
4739 -> Seq Scan on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx)
4740 -> Seq Scan on p2c2 p2_3 (cost=xxx..xxx rows=1 width=xxx)
4741 -> Seq Scan on p2c3 p2_4 (cost=xxx..xxx rows=1 width=xxx)
4742 -> Seq Scan on p2c1c1 p2_5 (cost=xxx..xxx rows=50 width=xxx)
4743 -> Seq Scan on p2c1c2 p2_6 (cost=xxx..xxx rows=50 width=xxx)
4744 -> Seq Scan on p2c2c1 p2_7 (cost=xxx..xxx rows=50 width=xxx)
4745 -> Seq Scan on p2c2c2 p2_8 (cost=xxx..xxx rows=50 width=xxx)
4746 -> Seq Scan on p2c3c1 p2_9 (cost=xxx..xxx rows=50 width=xxx)
4747 -> Seq Scan on p2c3c2 p2_10 (cost=xxx..xxx rows=50 width=xxx)
4748 -> Hash (cost=xxx..xxx rows=301 width=xxx)
4749 -> Append (cost=xxx..xxx rows=301 width=xxx)
4750 -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx)
4751 -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=100 width=xxx)
4752 -> Seq Scan on p1c2 p1_3 (cost=xxx..xxx rows=100 width=xxx)
4753 -> Seq Scan on p1c3 p1_4 (cost=xxx..xxx rows=100 width=xxx)
4756 \o results/ut-R.tmpout
4757 EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4759 \! sql/maskout.sh results/ut-R.tmpout
4761 ------------------------------------------------------------------------------
4762 Hash Join (cost=xxx..xxx rows=301 width=xxx)
4763 Hash Cond: (p2.c1 = p1.c1)
4764 -> Append (cost=xxx..xxx rows=304 width=xxx)
4765 -> Seq Scan on p2 p2_1 (cost=xxx..xxx rows=1 width=xxx)
4766 -> Seq Scan on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx)
4767 -> Seq Scan on p2c2 p2_3 (cost=xxx..xxx rows=1 width=xxx)
4768 -> Seq Scan on p2c3 p2_4 (cost=xxx..xxx rows=1 width=xxx)
4769 -> Seq Scan on p2c1c1 p2_5 (cost=xxx..xxx rows=50 width=xxx)
4770 -> Seq Scan on p2c1c2 p2_6 (cost=xxx..xxx rows=50 width=xxx)
4771 -> Seq Scan on p2c2c1 p2_7 (cost=xxx..xxx rows=50 width=xxx)
4772 -> Seq Scan on p2c2c2 p2_8 (cost=xxx..xxx rows=50 width=xxx)
4773 -> Seq Scan on p2c3c1 p2_9 (cost=xxx..xxx rows=50 width=xxx)
4774 -> Seq Scan on p2c3c2 p2_10 (cost=xxx..xxx rows=50 width=xxx)
4775 -> Hash (cost=xxx..xxx rows=301 width=xxx)
4776 -> Append (cost=xxx..xxx rows=301 width=xxx)
4777 -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx)
4778 -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=100 width=xxx)
4779 -> Seq Scan on p1c2 p1_3 (cost=xxx..xxx rows=100 width=xxx)
4780 -> Seq Scan on p1c3 p1_4 (cost=xxx..xxx rows=100 width=xxx)
4782 \o results/ut-R.tmpout
4783 /*+Rows(p1c1 p2c1 #1)*/
4784 EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4793 \! sql/maskout.sh results/ut-R.tmpout
4795 ------------------------------------------------------------------------------
4796 Hash Join (cost=xxx..xxx rows=301 width=xxx)
4797 Hash Cond: (p2.c1 = p1.c1)
4798 -> Append (cost=xxx..xxx rows=304 width=xxx)
4799 -> Seq Scan on p2 p2_1 (cost=xxx..xxx rows=1 width=xxx)
4800 -> Seq Scan on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx)
4801 -> Seq Scan on p2c2 p2_3 (cost=xxx..xxx rows=1 width=xxx)
4802 -> Seq Scan on p2c3 p2_4 (cost=xxx..xxx rows=1 width=xxx)
4803 -> Seq Scan on p2c1c1 p2_5 (cost=xxx..xxx rows=50 width=xxx)
4804 -> Seq Scan on p2c1c2 p2_6 (cost=xxx..xxx rows=50 width=xxx)
4805 -> Seq Scan on p2c2c1 p2_7 (cost=xxx..xxx rows=50 width=xxx)
4806 -> Seq Scan on p2c2c2 p2_8 (cost=xxx..xxx rows=50 width=xxx)
4807 -> Seq Scan on p2c3c1 p2_9 (cost=xxx..xxx rows=50 width=xxx)
4808 -> Seq Scan on p2c3c2 p2_10 (cost=xxx..xxx rows=50 width=xxx)
4809 -> Hash (cost=xxx..xxx rows=301 width=xxx)
4810 -> Append (cost=xxx..xxx rows=301 width=xxx)
4811 -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx)
4812 -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=100 width=xxx)
4813 -> Seq Scan on p1c2 p1_3 (cost=xxx..xxx rows=100 width=xxx)
4814 -> Seq Scan on p1c3 p1_4 (cost=xxx..xxx rows=100 width=xxx)
4817 ---- No. R-3-5 conflict join method hint
4820 \o results/ut-R.tmpout
4821 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4823 \! sql/maskout.sh results/ut-R.tmpout
4825 ---------------------------------------------------------------------------
4826 Merge Join (cost=xxx..xxx rows=100 width=xxx)
4827 Merge Cond: (t1.c1 = t2.c1)
4828 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4829 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4831 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4833 \o results/ut-R.tmpout
4834 /*+Rows(t1 t2 #1)Rows(t1 t2 #1)*/
4835 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4836 INFO: pg_hint_plan: hint syntax error at or near "Rows(t1 t2 #1)Rows(t1 t2 #1)"
4837 DETAIL: Conflict rows hint.
4847 \! sql/maskout.sh results/ut-R.tmpout
4849 ---------------------------------------------------------------------------
4850 Merge Join (cost=xxx..xxx rows=1 width=xxx)
4851 Merge Cond: (t1.c1 = t2.c1)
4852 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4853 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4855 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4858 \o results/ut-R.tmpout
4859 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4861 \! sql/maskout.sh results/ut-R.tmpout
4863 ---------------------------------------------------------------------------
4864 Merge Join (cost=xxx..xxx rows=100 width=xxx)
4865 Merge Cond: (t1.c1 = t2.c1)
4866 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4867 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4869 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4871 \o results/ut-R.tmpout
4872 /*+Rows(t1 t2 #1)Rows(t1 t2 #1)Rows(t1 t2 #1)*/
4873 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4874 INFO: pg_hint_plan: hint syntax error at or near "Rows(t1 t2 #1)Rows(t1 t2 #1)Rows(t1 t2 #1)"
4875 DETAIL: Conflict rows hint.
4876 INFO: pg_hint_plan: hint syntax error at or near "Rows(t1 t2 #1)Rows(t1 t2 #1)"
4877 DETAIL: Conflict rows hint.
4888 \! sql/maskout.sh results/ut-R.tmpout
4890 ---------------------------------------------------------------------------
4891 Merge Join (cost=xxx..xxx rows=1 width=xxx)
4892 Merge Cond: (t1.c1 = t2.c1)
4893 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4894 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4896 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4899 \o results/ut-R.tmpout
4900 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4902 \! sql/maskout.sh results/ut-R.tmpout
4904 ---------------------------------------------------------------------------
4905 Merge Join (cost=xxx..xxx rows=100 width=xxx)
4906 Merge Cond: (t1.c1 = t2.c1)
4907 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4908 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4910 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4912 \o results/ut-R.tmpout
4913 /*+Rows(t1 t2 #1)Rows(t2 t1 #1)*/
4914 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4915 INFO: pg_hint_plan: hint syntax error at or near "Rows(t1 t2 #1)Rows(t2 t1 #1)"
4916 DETAIL: Conflict rows hint.
4926 \! sql/maskout.sh results/ut-R.tmpout
4928 ---------------------------------------------------------------------------
4929 Merge Join (cost=xxx..xxx rows=1 width=xxx)
4930 Merge Cond: (t1.c1 = t2.c1)
4931 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4932 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4934 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4937 \o results/ut-R.tmpout
4938 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4940 \! sql/maskout.sh results/ut-R.tmpout
4942 ---------------------------------------------------------------------------
4943 Merge Join (cost=xxx..xxx rows=100 width=xxx)
4944 Merge Cond: (t1.c1 = t2.c1)
4945 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4946 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4948 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4950 \o results/ut-R.tmpout
4951 /*+Rows(t2 t1 #1)Rows(t1 t2 #1)Rows(t2 t1 #1)*/
4952 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4953 INFO: pg_hint_plan: hint syntax error at or near "Rows(t2 t1 #1)Rows(t1 t2 #1)Rows(t2 t1 #1)"
4954 DETAIL: Conflict rows hint.
4955 INFO: pg_hint_plan: hint syntax error at or near "Rows(t1 t2 #1)Rows(t2 t1 #1)"
4956 DETAIL: Conflict rows hint.
4967 \! sql/maskout.sh results/ut-R.tmpout
4969 ---------------------------------------------------------------------------
4970 Merge Join (cost=xxx..xxx rows=1 width=xxx)
4971 Merge Cond: (t1.c1 = t2.c1)
4972 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4973 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4975 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4978 ---- No. R-3-6 hint state output
4981 SET client_min_messages TO DEBUG1;
4982 \o results/ut-R.tmpout
4983 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4985 \! sql/maskout.sh results/ut-R.tmpout
4987 ---------------------------------------------------------------------------
4988 Merge Join (cost=xxx..xxx rows=100 width=xxx)
4989 Merge Cond: (t1.c1 = t2.c1)
4990 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
4991 -> Sort (cost=xxx..xxx rows=100 width=xxx)
4993 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4995 \o results/ut-R.tmpout
4997 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4998 DEBUG: adjusted rows 100 to 101
5007 \! sql/maskout.sh results/ut-R.tmpout
5009 ---------------------------------------------------------------------------
5010 Merge Join (cost=xxx..xxx rows=101 width=xxx)
5011 Merge Cond: (t1.c1 = t2.c1)
5012 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
5013 -> Sort (cost=xxx..xxx rows=100 width=xxx)
5015 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
5017 \! rm results/ut-R.tmpout