2 SET pg_hint_plan.enable_hint TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
6 \o results/R_sample.out.log
7 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
9 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_sample.out.log > results/R_sample.out
10 \! diff expected/R_sample.out results/R_sample.out
12 ---- No. R-1-1 specified pattern of the object name
15 \o results/R_1-1-1.out.log
17 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
26 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-1-1.out.log > results/R_1-1-1.out
27 \! diff expected/R_1-1-1.out results/R_1-1-1.out
29 \o results/R_1-1-2.out.log
31 EXPLAIN SELECT * FROM s1.t1 t_1, s1.t2 t_2 WHERE t_1.c1 = t_2.c1;
40 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-1-2.out.log > results/R_1-1-2.out
41 \! diff expected/R_1-1-2.out results/R_1-1-2.out
43 \o results/R_1-1-3.out.log
45 EXPLAIN SELECT * FROM s1.t1 t_1, s1.t2 t_2 WHERE t_1.c1 = t_2.c1;
54 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-1-3.out.log > results/R_1-1-3.out
55 \! diff expected/R_1-1-3.out results/R_1-1-3.out
57 ---- No. R-1-2 specified schema name in the hint option
60 \o results/R_1-2-1.out.log
62 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
71 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-2-1.out.log > results/R_1-2-1.out
72 \! diff expected/R_1-2-1.out results/R_1-2-1.out
74 \o results/R_1-2-2.out.log
75 /*+Rows(s1.t1 s1.t2 #1)*/
76 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
85 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-2-2.out.log > results/R_1-2-2.out
86 \! diff expected/R_1-2-2.out results/R_1-2-2.out
88 ---- No. R-1-3 table doesn't exist in the hint option
91 \o results/R_1-3-1.out.log
93 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
102 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-3-1.out.log > results/R_1-3-1.out
103 \! diff expected/R_1-3-1.out results/R_1-3-1.out
105 \o results/R_1-3-2.out.log
107 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
116 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-3-2.out.log > results/R_1-3-2.out
117 \! diff expected/R_1-3-2.out results/R_1-3-2.out
119 ---- No. R-1-4 conflict table name
122 \o results/R_1-4-1.out.log
124 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
133 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-4-1.out.log > results/R_1-4-1.out
134 \! diff expected/R_1-4-1.out results/R_1-4-1.out
136 \o results/R_1-4-2.out.log
137 EXPLAIN SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
139 EXPLAIN SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
140 INFO: hint syntax error at or near "Rows(t1 t1 #1)"
141 DETAIL: Relation name "t1" is ambiguous.
149 /*+Rows(s1.t1 s2.t1 #1)*/
150 EXPLAIN SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
158 EXPLAIN SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
159 /*+Rows(t1 s2t1 #1)*/
160 EXPLAIN SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
169 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-4-2.out.log > results/R_1-4-2.out
170 \! diff expected/R_1-4-2.out results/R_1-4-2.out
172 \o results/R_1-4-3.out.log
173 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;
175 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;
183 /*+Rows(st1 st2 #1)Rows(t1 t2 #1)*/
184 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;
194 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-4-3.out.log > results/R_1-4-3.out
195 \! diff expected/R_1-4-3.out results/R_1-4-3.out
197 ---- No. R-1-5 conflict table name
200 \o results/R_1-5-1.out.log
202 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
211 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-5-1.out.log > results/R_1-5-1.out
212 \! diff expected/R_1-5-1.out results/R_1-5-1.out
214 \o results/R_1-5-2.out.log
216 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
217 INFO: hint syntax error at or near "Rows(t1 t1 #1)"
218 DETAIL: Relation name "t1" is duplicated.
227 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-5-2.out.log > results/R_1-5-2.out
228 \! diff expected/R_1-5-2.out results/R_1-5-2.out
230 \o results/R_1-5-3.out.log
232 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
233 INFO: hint syntax error at or near "(t1 t1)(t2 t2)"
234 DETAIL: Unrecognized hint keyword "".
235 EXPLAIN SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
237 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;
238 INFO: hint syntax error at or near "(t1 t2 t1 t2)"
239 DETAIL: Unrecognized hint keyword "".
241 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-5-3.out.log > results/R_1-5-3.out
242 \! diff expected/R_1-5-3.out results/R_1-5-3.out
244 ---- No. R-1-6 object type for the hint
247 \o results/R_1-6-1.out.log
249 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
258 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-1.out.log > results/R_1-6-1.out
259 \! diff expected/R_1-6-1.out results/R_1-6-1.out
261 \o results/R_1-6-2.out.log
262 EXPLAIN SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
264 EXPLAIN SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
273 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-2.out.log > results/R_1-6-2.out
274 \! diff expected/R_1-6-2.out results/R_1-6-2.out
276 \o results/R_1-6-3.out.log
277 EXPLAIN SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
279 EXPLAIN SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
288 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-3.out.log > results/R_1-6-3.out
289 \! diff expected/R_1-6-3.out results/R_1-6-3.out
291 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
292 \o results/R_1-6-4.out.log
293 EXPLAIN SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
295 EXPLAIN SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
304 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-4.out.log > results/R_1-6-4.out
305 \! diff expected/R_1-6-4.out results/R_1-6-4.out
307 \o results/R_1-6-5.out.log
308 EXPLAIN SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
310 EXPLAIN SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
319 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-5.out.log > results/R_1-6-5.out
320 \! diff expected/R_1-6-5.out results/R_1-6-5.out
324 \o results/R_1-6-7.out.log
325 EXPLAIN SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
327 EXPLAIN SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
336 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-7.out.log > results/R_1-6-7.out
337 \! diff expected/R_1-6-7.out results/R_1-6-7.out
339 \o results/R_1-6-8.out.log
340 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;
342 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;
350 /*+Rows(*VALUES* t2 #1)*/
351 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;
360 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-8.out.log > results/R_1-6-8.out
361 \! diff expected/R_1-6-8.out results/R_1-6-8.out
363 \o results/R_1-6-9.out.log
364 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;
365 /*+Rows(t1 t2 #1)Rows(t1 c1 +1)*/
366 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;
376 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-9.out.log > results/R_1-6-9.out
377 \! diff expected/R_1-6-9.out results/R_1-6-9.out
379 \o results/R_1-6-10.out.log
380 EXPLAIN SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
382 EXPLAIN SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
390 /*+Rows(v1t1 v1t1_ #1)*/
391 EXPLAIN SELECT * FROM s1.v1 t1, s1.v1_ t2 WHERE t1.c1 = t2.c1;
400 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-10.out.log > results/R_1-6-10.out
401 \! diff expected/R_1-6-10.out results/R_1-6-10.out
403 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);
405 -------------------------------------------------------------------------------------------------
406 Nested Loop (cost=12.28..22.56 rows=1 width=29)
407 InitPlan 1 (returns $0)
408 -> Aggregate (cost=12.00..12.01 rows=1 width=4)
409 -> Merge Join (cost=5.60..11.75 rows=100 width=4)
410 Merge Cond: (st1.c1 = st2.c1)
411 -> Index Only Scan using t1_i1 on t1 st1 (cost=0.28..44.27 rows=1000 width=4)
412 -> Sort (cost=5.32..5.57 rows=100 width=4)
414 -> Seq Scan on t2 st2 (cost=0.00..2.00 rows=100 width=4)
415 -> Index Scan using t1_i1 on t1 (cost=0.28..8.29 rows=1 width=15)
416 Index Cond: (c1 = $0)
417 -> Seq Scan on t2 (cost=0.00..2.25 rows=1 width=14)
421 /*+Rows(t1 t2 #1)Rows(st1 st2 #1)*/
422 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);
432 -------------------------------------------------------------------------------------------------
433 Nested Loop (cost=12.03..22.31 rows=1 width=29)
434 InitPlan 1 (returns $0)
435 -> Aggregate (cost=11.75..11.76 rows=1 width=4)
436 -> Merge Join (cost=5.60..11.75 rows=1 width=4)
437 Merge Cond: (st1.c1 = st2.c1)
438 -> Index Only Scan using t1_i1 on t1 st1 (cost=0.28..44.27 rows=1000 width=4)
439 -> Sort (cost=5.32..5.57 rows=100 width=4)
441 -> Seq Scan on t2 st2 (cost=0.00..2.00 rows=100 width=4)
442 -> Index Scan using t1_i1 on t1 (cost=0.28..8.29 rows=1 width=15)
443 Index Cond: (c1 = $0)
444 -> Seq Scan on t2 (cost=0.00..2.25 rows=1 width=14)
449 -- There are cases where difference in the measured value and predicted value
450 -- depending upon the version of PostgreSQL
452 \o results/R_1-6-11.out.log
453 EXPLAIN SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
455 EXPLAIN SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
464 EXPLAIN SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
473 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-6-11.out.log > results/R_1-6-11.out
474 \! diff expected/R_1-6-11.out results/R_1-6-11.out
476 ---- No. R-1-7 specified number of conditions
479 \o results/R_1-7-1.out.log
481 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
482 INFO: hint syntax error at or near ""
483 DETAIL: Rows hint requires at least two relations.
492 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-7-1.out.log > results/R_1-7-1.out
493 \! diff expected/R_1-7-1.out results/R_1-7-1.out
495 \o results/R_1-7-2.out.log
497 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
498 INFO: hint syntax error at or near "1"
499 DETAIL: unrecognized rows value type notation.
508 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-7-2.out.log > results/R_1-7-2.out
509 \! diff expected/R_1-7-2.out results/R_1-7-2.out
511 \o results/R_1-7-3.out.log
512 /*+Rows(t1 t2 #notrows)*/
513 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
514 INFO: hint syntax error at or near "notrows"
515 DETAIL: Rows hint requires valid number as rows estimation.
524 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_1-7-3.out.log > results/R_1-7-3.out
525 \! diff expected/R_1-7-3.out results/R_1-7-3.out
527 ---- No. R-2-1 some complexity query blocks
530 \o results/R_2-1-1.out.log
532 Leading(bmt1 bmt2 bmt3 bmt4)
533 Leading(b1t2 b1t3 b1t4 b1t1)
534 Leading(b2t3 b2t4 b2t1 b2t2)
535 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
536 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
537 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
540 SELECT max(bmt1.c1), (
541 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
543 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
545 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
552 HashJoin(b1t2 b1t3 b1t4)
553 HashJoin(b2t1 b2t3 b2t4)
554 HashJoin(bmt1 bmt2 bmt3)
555 NestLoop(b1t1 b1t2 b1t3 b1t4)
556 NestLoop(b2t1 b2t2 b2t3 b2t4)
557 NestLoop(bmt1 bmt2 bmt3 bmt4)
558 Leading(bmt1 bmt2 bmt3 bmt4)
559 Leading(b1t2 b1t3 b1t4 b1t1)
560 Leading(b2t3 b2t4 b2t1 b2t2)
566 Leading(bmt1 bmt2 bmt3 bmt4)
567 Leading(b1t2 b1t3 b1t4 b1t1)
568 Leading(b2t3 b2t4 b2t1 b2t2)
569 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
570 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
571 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
572 Rows(bmt1 bmt2 #1)Rows(bmt1 bmt2 bmt3 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
573 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
574 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
577 SELECT max(bmt1.c1), (
578 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
580 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)
581 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
588 HashJoin(b1t2 b1t3 b1t4)
589 HashJoin(b2t1 b2t3 b2t4)
590 HashJoin(bmt1 bmt2 bmt3)
591 NestLoop(b1t1 b1t2 b1t3 b1t4)
592 NestLoop(b2t1 b2t2 b2t3 b2t4)
593 NestLoop(bmt1 bmt2 bmt3 bmt4)
594 Leading(bmt1 bmt2 bmt3 bmt4)
595 Leading(b1t2 b1t3 b1t4 b1t1)
596 Leading(b2t3 b2t4 b2t1 b2t2)
600 Rows(b1t2 b1t3 b1t4 #1)
601 Rows(b2t1 b2t3 b2t4 #1)
602 Rows(bmt1 bmt2 bmt3 #1)
603 Rows(b1t1 b1t2 b1t3 b1t4 #1)
604 Rows(b2t1 b2t2 b2t3 b2t4 #1)
605 Rows(bmt1 bmt2 bmt3 bmt4 #1)
611 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-1-1.out.log > results/R_2-1-1.out
612 \! diff expected/R_2-1-1.out results/R_2-1-1.out
614 \o results/R_2-1-2.out.log
616 Leading(bmt1 bmt2 bmt3 bmt4)
617 Leading(b1t2 b1t3 b1t4 b1t1)
618 Leading(b2t3 b2t4 b2t1 b2t2)
619 Leading(b3t4 b3t1 b3t2 b3t3)
620 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
621 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
622 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
623 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
626 SELECT max(bmt1.c1), (
627 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
629 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
631 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
633 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
641 HashJoin(b1t2 b1t3 b1t4)
642 HashJoin(b2t1 b2t3 b2t4)
643 HashJoin(b3t1 b3t2 b3t4)
644 HashJoin(bmt1 bmt2 bmt3)
645 NestLoop(b1t1 b1t2 b1t3 b1t4)
646 NestLoop(b2t1 b2t2 b2t3 b2t4)
647 NestLoop(b3t1 b3t2 b3t3 b3t4)
648 NestLoop(bmt1 bmt2 bmt3 bmt4)
649 Leading(bmt1 bmt2 bmt3 bmt4)
650 Leading(b1t2 b1t3 b1t4 b1t1)
651 Leading(b2t3 b2t4 b2t1 b2t2)
652 Leading(b3t4 b3t1 b3t2 b3t3)
658 Leading(bmt1 bmt2 bmt3 bmt4)
659 Leading(b1t2 b1t3 b1t4 b1t1)
660 Leading(b2t3 b2t4 b2t1 b2t2)
661 Leading(b3t4 b3t1 b3t2 b3t3)
662 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
663 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
664 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
665 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
666 Rows(bmt1 bmt2 #1)Rows(bmt1 bmt2 bmt3 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
667 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
668 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
669 Rows(b3t4 b3t1 #1)Rows(b3t4 b3t1 b3t2 #1)Rows(b3t1 b3t2 b3t3 b3t4 #1)
672 SELECT max(bmt1.c1), (
673 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
675 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
677 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
679 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
687 HashJoin(b1t2 b1t3 b1t4)
688 HashJoin(b2t1 b2t3 b2t4)
689 HashJoin(b3t1 b3t2 b3t4)
690 HashJoin(bmt1 bmt2 bmt3)
691 NestLoop(b1t1 b1t2 b1t3 b1t4)
692 NestLoop(b2t1 b2t2 b2t3 b2t4)
693 NestLoop(b3t1 b3t2 b3t3 b3t4)
694 NestLoop(bmt1 bmt2 bmt3 bmt4)
695 Leading(bmt1 bmt2 bmt3 bmt4)
696 Leading(b1t2 b1t3 b1t4 b1t1)
697 Leading(b2t3 b2t4 b2t1 b2t2)
698 Leading(b3t4 b3t1 b3t2 b3t3)
703 Rows(b1t2 b1t3 b1t4 #1)
704 Rows(b2t1 b2t3 b2t4 #1)
705 Rows(b3t1 b3t2 b3t4 #1)
706 Rows(bmt1 bmt2 bmt3 #1)
707 Rows(b1t1 b1t2 b1t3 b1t4 #1)
708 Rows(b2t1 b2t2 b2t3 b2t4 #1)
709 Rows(b3t1 b3t2 b3t3 b3t4 #1)
710 Rows(bmt1 bmt2 bmt3 bmt4 #1)
716 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-1-2.out.log > results/R_2-1-2.out
717 \! diff expected/R_2-1-2.out results/R_2-1-2.out
719 \o results/R_2-1-3.out.log
721 Leading(bmt4 bmt3 bmt2 bmt1)
723 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;
726 Leading(bmt4 bmt3 bmt2 bmt1)
732 Leading(bmt4 bmt3 bmt2 bmt1)
733 Rows(bmt4 bmt3 #1)Rows(bmt4 bmt3 bmt2 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
735 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;
738 Leading(bmt4 bmt3 bmt2 bmt1)
740 Rows(bmt2 bmt3 bmt4 #1)
741 Rows(bmt1 bmt2 bmt3 bmt4 #1)
747 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-1-3.out.log > results/R_2-1-3.out
748 \! diff expected/R_2-1-3.out results/R_2-1-3.out
750 \o results/R_2-1-4.out.log
752 Leading(bmt4 bmt3 bmt2 bmt1)
754 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;
757 Leading(bmt4 bmt3 bmt2 bmt1)
763 Leading(bmt4 bmt3 bmt2 bmt1)
764 Rows(bmt4 bmt3 #1)Rows(bmt4 bmt3 bmt2 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
766 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;
769 Leading(bmt4 bmt3 bmt2 bmt1)
771 Rows(bmt2 bmt3 bmt4 #1)
772 Rows(bmt1 bmt2 bmt3 bmt4 #1)
778 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-1-4.out.log > results/R_2-1-4.out
779 \! diff expected/R_2-1-4.out results/R_2-1-4.out
781 \o results/R_2-1-5.out.log
783 Leading(bmt1 bmt2 bmt3 bmt4)
784 Leading(b1t2 b1t3 b1t4 b1t1)
785 Leading(b2t3 b2t4 b2t1 b2t2)
786 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
787 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
788 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
791 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
793 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
795 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
803 HashJoin(b1t2 b1t3 b1t4)
804 HashJoin(b2t1 b2t3 b2t4)
805 HashJoin(bmt1 bmt2 bmt3)
806 NestLoop(b1t1 b1t2 b1t3 b1t4)
807 NestLoop(b2t1 b2t2 b2t3 b2t4)
808 NestLoop(bmt1 bmt2 bmt3 bmt4)
809 Leading(bmt1 bmt2 bmt3 bmt4)
810 Leading(b1t2 b1t3 b1t4 b1t1)
811 Leading(b2t3 b2t4 b2t1 b2t2)
817 Leading(bmt1 bmt2 bmt3 bmt4)
818 Leading(b1t2 b1t3 b1t4 b1t1)
819 Leading(b2t3 b2t4 b2t1 b2t2)
820 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
821 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
822 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
823 Rows(bmt1 bmt2 #1)Rows(bmt1 bmt2 bmt3 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
824 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
825 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
828 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
830 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
832 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
840 HashJoin(b1t2 b1t3 b1t4)
841 HashJoin(b2t1 b2t3 b2t4)
842 HashJoin(bmt1 bmt2 bmt3)
843 NestLoop(b1t1 b1t2 b1t3 b1t4)
844 NestLoop(b2t1 b2t2 b2t3 b2t4)
845 NestLoop(bmt1 bmt2 bmt3 bmt4)
846 Leading(bmt1 bmt2 bmt3 bmt4)
847 Leading(b1t2 b1t3 b1t4 b1t1)
848 Leading(b2t3 b2t4 b2t1 b2t2)
852 Rows(b1t2 b1t3 b1t4 #1)
853 Rows(b2t1 b2t3 b2t4 #1)
854 Rows(bmt1 bmt2 bmt3 #1)
855 Rows(b1t1 b1t2 b1t3 b1t4 #1)
856 Rows(b2t1 b2t2 b2t3 b2t4 #1)
857 Rows(bmt1 bmt2 bmt3 bmt4 #1)
863 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-1-5.out.log > results/R_2-1-5.out
864 \! diff expected/R_2-1-5.out results/R_2-1-5.out
866 \o results/R_2-1-6.out.log
868 Leading(bmt1 bmt2 bmt3 bmt4)
869 Leading(b1t2 b1t3 b1t4 b1t1)
870 Leading(b2t3 b2t4 b2t1 b2t2)
871 Leading(b3t4 b3t1 b3t2 b3t3)
872 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
873 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
874 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
875 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
878 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
880 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
882 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
884 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
893 HashJoin(b1t2 b1t3 b1t4)
894 HashJoin(b2t1 b2t3 b2t4)
895 HashJoin(b3t1 b3t2 b3t4)
896 HashJoin(bmt1 bmt2 bmt3)
897 NestLoop(b1t1 b1t2 b1t3 b1t4)
898 NestLoop(b2t1 b2t2 b2t3 b2t4)
899 NestLoop(b3t1 b3t2 b3t3 b3t4)
900 NestLoop(bmt1 bmt2 bmt3 bmt4)
901 Leading(bmt1 bmt2 bmt3 bmt4)
902 Leading(b1t2 b1t3 b1t4 b1t1)
903 Leading(b2t3 b2t4 b2t1 b2t2)
904 Leading(b3t4 b3t1 b3t2 b3t3)
910 Leading(bmt1 bmt2 bmt3 bmt4)
911 Leading(b1t2 b1t3 b1t4 b1t1)
912 Leading(b2t3 b2t4 b2t1 b2t2)
913 Leading(b3t4 b3t1 b3t2 b3t3)
914 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
915 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
916 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
917 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
918 Rows(bmt1 bmt2 #1)Rows(bmt1 bmt2 bmt3 #1)Rows(bmt1 bmt2 bmt3 bmt4 #1)
919 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
920 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
921 Rows(b3t4 b3t1 #1)Rows(b3t4 b3t1 b3t2 #1)Rows(b3t1 b3t2 b3t3 b3t4 #1)
924 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
926 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
928 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
930 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
939 HashJoin(b1t2 b1t3 b1t4)
940 HashJoin(b2t1 b2t3 b2t4)
941 HashJoin(b3t1 b3t2 b3t4)
942 HashJoin(bmt1 bmt2 bmt3)
943 NestLoop(b1t1 b1t2 b1t3 b1t4)
944 NestLoop(b2t1 b2t2 b2t3 b2t4)
945 NestLoop(b3t1 b3t2 b3t3 b3t4)
946 NestLoop(bmt1 bmt2 bmt3 bmt4)
947 Leading(bmt1 bmt2 bmt3 bmt4)
948 Leading(b1t2 b1t3 b1t4 b1t1)
949 Leading(b2t3 b2t4 b2t1 b2t2)
950 Leading(b3t4 b3t1 b3t2 b3t3)
955 Rows(b1t2 b1t3 b1t4 #1)
956 Rows(b2t1 b2t3 b2t4 #1)
957 Rows(b3t1 b3t2 b3t4 #1)
958 Rows(bmt1 bmt2 bmt3 #1)
959 Rows(b1t1 b1t2 b1t3 b1t4 #1)
960 Rows(b2t1 b2t2 b2t3 b2t4 #1)
961 Rows(b3t1 b3t2 b3t3 b3t4 #1)
962 Rows(bmt1 bmt2 bmt3 bmt4 #1)
968 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-1-6.out.log > results/R_2-1-6.out
969 \! diff expected/R_2-1-6.out results/R_2-1-6.out
971 \o results/R_2-1-7.out.log
973 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
974 Leading(b1t2 b1t3 b1t4 b1t1)
975 Leading(b2t3 b2t4 b2t1 b2t2)
976 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)
977 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
978 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
982 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
985 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
987 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
989 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
998 HashJoin(b1t2 b1t3 b1t4)
999 HashJoin(b2t1 b2t3 b2t4)
1000 HashJoin(bmt1 c1 c2)
1001 NestLoop(b1t1 b1t2 b1t3 b1t4)
1002 NestLoop(b2t1 b2t2 b2t3 b2t4)
1003 NestLoop(bmt1 bmt2 c1 c2)
1004 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1005 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1006 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1007 Leading(b1t2 b1t3 b1t4 b1t1)
1008 Leading(b2t3 b2t4 b2t1 b2t2)
1014 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1015 Leading(b1t2 b1t3 b1t4 b1t1)
1016 Leading(b2t3 b2t4 b2t1 b2t2)
1017 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)
1018 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1019 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1020 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)
1021 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
1022 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
1026 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
1029 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
1031 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1033 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1039 MergeJoin(b1t2 b1t3)
1040 MergeJoin(b2t3 b2t4)
1042 HashJoin(b1t2 b1t3 b1t4)
1043 HashJoin(b2t1 b2t3 b2t4)
1044 HashJoin(bmt1 c1 c2)
1045 NestLoop(b1t1 b1t2 b1t3 b1t4)
1046 NestLoop(b2t1 b2t2 b2t3 b2t4)
1047 NestLoop(bmt1 bmt2 c1 c2)
1048 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1049 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1050 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1051 Leading(b1t2 b1t3 b1t4 b1t1)
1052 Leading(b2t3 b2t4 b2t1 b2t2)
1056 Rows(b1t2 b1t3 b1t4 #1)
1057 Rows(b2t1 b2t3 b2t4 #1)
1059 Rows(b1t1 b1t2 b1t3 b1t4 #1)
1060 Rows(b2t1 b2t2 b2t3 b2t4 #1)
1061 Rows(bmt1 bmt2 c1 c2 #1)
1062 Rows(bmt1 bmt2 bmt3 c1 c2 #1)
1063 Rows(bmt1 bmt2 bmt3 bmt4 c1 c2 #1)
1069 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-1-7.out.log > results/R_2-1-7.out
1070 \! diff expected/R_2-1-7.out results/R_2-1-7.out
1072 \o results/R_2-1-8.out.log
1074 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
1075 Leading(b1t2 b1t3 b1t4 b1t1)
1076 Leading(b2t3 b2t4 b2t1 b2t2)
1077 Leading(b3t4 b3t1 b3t2 b3t3)
1078 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)
1079 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1080 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1081 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1085 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
1088 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
1091 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
1093 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1095 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1102 MergeJoin(b1t2 b1t3)
1103 MergeJoin(b2t3 b2t4)
1104 MergeJoin(b3t1 b3t4)
1106 HashJoin(b1t2 b1t3 b1t4)
1107 HashJoin(b2t1 b2t3 b2t4)
1108 HashJoin(b3t1 b3t2 b3t4)
1110 NestLoop(b1t1 b1t2 b1t3 b1t4)
1111 NestLoop(b2t1 b2t2 b2t3 b2t4)
1112 NestLoop(b3t1 b3t2 b3t3 b3t4)
1113 NestLoop(bmt1 c1 c2 c3)
1114 MergeJoin(bmt1 bmt2 c1 c2 c3)
1115 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
1116 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
1117 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
1118 Leading(b1t2 b1t3 b1t4 b1t1)
1119 Leading(b2t3 b2t4 b2t1 b2t2)
1120 Leading(b3t4 b3t1 b3t2 b3t3)
1126 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
1127 Leading(b1t2 b1t3 b1t4 b1t1)
1128 Leading(b2t3 b2t4 b2t1 b2t2)
1129 Leading(b3t4 b3t1 b3t2 b3t3)
1130 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)
1131 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1132 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1133 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1134 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)
1135 Rows(b1t2 b1t3 #1)Rows(b1t2 b1t3 b1t4 #1)Rows(b1t2 b1t3 b1t4 b1t1 #1)
1136 Rows(b2t3 b2t4 #1)Rows(b2t3 b2t4 b2t1 #1)Rows(b2t3 b2t4 b2t1 b2t2 #1)
1137 Rows(b3t4 b3t1 #1)Rows(b3t4 b3t1 b3t2 #1)Rows(b3t1 b3t2 b3t3 b3t4 #1)
1141 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
1144 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
1147 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
1149 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1151 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
1158 MergeJoin(b1t2 b1t3)
1159 MergeJoin(b2t3 b2t4)
1160 MergeJoin(b3t1 b3t4)
1162 HashJoin(b1t2 b1t3 b1t4)
1163 HashJoin(b2t1 b2t3 b2t4)
1164 HashJoin(b3t1 b3t2 b3t4)
1166 NestLoop(b1t1 b1t2 b1t3 b1t4)
1167 NestLoop(b2t1 b2t2 b2t3 b2t4)
1168 NestLoop(b3t1 b3t2 b3t3 b3t4)
1169 NestLoop(bmt1 c1 c2 c3)
1170 MergeJoin(bmt1 bmt2 c1 c2 c3)
1171 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
1172 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
1173 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
1174 Leading(b1t2 b1t3 b1t4 b1t1)
1175 Leading(b2t3 b2t4 b2t1 b2t2)
1176 Leading(b3t4 b3t1 b3t2 b3t3)
1181 Rows(b1t2 b1t3 b1t4 #1)
1182 Rows(b2t1 b2t3 b2t4 #1)
1183 Rows(b3t1 b3t2 b3t4 #1)
1185 Rows(b1t1 b1t2 b1t3 b1t4 #1)
1186 Rows(b2t1 b2t2 b2t3 b2t4 #1)
1187 Rows(b3t1 b3t2 b3t3 b3t4 #1)
1188 Rows(bmt1 c1 c2 c3 #1)
1189 Rows(bmt1 bmt2 c1 c2 c3 #1)
1190 Rows(bmt1 bmt2 bmt3 c1 c2 c3 #1)
1191 Rows(bmt1 bmt2 bmt3 bmt4 c1 c2 c3 #1)
1197 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-1-8.out.log > results/R_2-1-8.out
1198 \! diff expected/R_2-1-8.out results/R_2-1-8.out
1200 ---- No. R-2-2 the number of the tables per quiry block
1203 \o results/R_2-2-1.out.log
1209 SELECT b1t1.c1 FROM s1.t1 b1t1 WHERE b1t1.c1 = 1
1212 SELECT b2t1.c1 FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
1214 FROM s1.t1 bmt1, c1 WHERE bmt1.c1 = 1
1217 SELECT b3t1.c1 FROM s1.t1 b3t1 WHERE b3t1.c1 = 1
1236 SELECT b1t1.c1 FROM s1.t1 b1t1 WHERE b1t1.c1 = 1
1239 SELECT b2t1.c1 FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
1241 FROM s1.t1 bmt1, c1 WHERE bmt1.c1 = 1
1244 SELECT b3t1.c1 FROM s1.t1 b3t1 WHERE b3t1.c1 = 1
1259 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-2-1.out.log > results/R_2-2-1.out
1260 \! diff expected/R_2-2-1.out results/R_2-2-1.out
1262 \o results/R_2-2-2.out.log
1264 Leading(c1 bmt2 bmt1)
1269 HashJoin(c1 bmt1 bmt2)
1270 MergeJoin(b1t1 b1t2)
1271 MergeJoin(b2t1 b2t2)
1272 MergeJoin(b3t1 b3t2)
1276 SELECT b1t1.c1 FROM s1.t1 b1t1, s1.t2 b1t2 WHERE b1t1.c1 = b1t2.c1
1279 SELECT b2t1.c1 FROM s1.t1 b2t1, s1.t2 b2t2 WHERE b2t1.c1 = b2t2.c1
1281 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.c1 = bmt2.c1
1284 SELECT b3t1.c1 FROM s1.t1 b3t1, s1.t2 b3t2 WHERE b3t1.c1 = b3t2.c1
1289 MergeJoin(b1t1 b1t2)
1290 MergeJoin(b2t1 b2t2)
1291 MergeJoin(b3t1 b3t2)
1293 HashJoin(bmt1 bmt2 c1)
1294 Leading(c1 bmt2 bmt1)
1303 Leading(c1 bmt2 bmt1)
1308 HashJoin(c1 bmt1 bmt2)
1309 MergeJoin(b1t1 b1t2)
1310 MergeJoin(b2t1 b2t2)
1311 MergeJoin(b3t1 b3t2)
1313 Rows(c1 bmt1 bmt2 #1)
1320 SELECT b1t1.c1 FROM s1.t1 b1t1, s1.t2 b1t2 WHERE b1t1.c1 = b1t2.c1
1323 SELECT b2t1.c1 FROM s1.t1 b2t1, s1.t2 b2t2 WHERE b2t1.c1 = b2t2.c1
1325 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.c1 = bmt2.c1
1328 SELECT b3t1.c1 FROM s1.t1 b3t1, s1.t2 b3t2 WHERE b3t1.c1 = b3t2.c1
1333 MergeJoin(b1t1 b1t2)
1334 MergeJoin(b2t1 b2t2)
1335 MergeJoin(b3t1 b3t2)
1337 HashJoin(bmt1 bmt2 c1)
1338 Leading(c1 bmt2 bmt1)
1346 Rows(bmt1 bmt2 c1 #1)
1352 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-2-2.out.log > results/R_2-2-2.out
1353 \! diff expected/R_2-2-2.out results/R_2-2-2.out
1355 \o results/R_2-2-3.out.log
1357 Leading(c1 bmt4 bmt3 bmt2 bmt1)
1358 Leading(b1t4 b1t3 b1t2 b1t1)
1359 Leading(b2t4 b2t3 b2t2 b2t1)
1360 Leading(b3t4 b3t3 b3t2 b3t1)
1362 HashJoin(c1 bmt4 bmt3)
1363 NestLoop(c1 bmt4 bmt3 bmt2)
1364 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
1366 NestLoop(b1t4 b1t3 b1t2)
1367 MergeJoin(b1t4 b1t3 b1t2 b1t1)
1369 NestLoop(b2t4 b2t3 b2t2)
1370 MergeJoin(b2t4 b2t3 b2t2 b2t1)
1372 NestLoop(b3t4 b3t3 b3t2)
1373 MergeJoin(b3t4 b3t3 b3t2 b3t1)
1377 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
1380 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
1382 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
1384 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
1393 NestLoop(b1t2 b1t3 b1t4)
1394 NestLoop(b2t2 b2t3 b2t4)
1395 NestLoop(b3t2 b3t3 b3t4)
1396 HashJoin(bmt3 bmt4 c1)
1397 MergeJoin(b1t1 b1t2 b1t3 b1t4)
1398 MergeJoin(b2t1 b2t2 b2t3 b2t4)
1399 MergeJoin(b3t1 b3t2 b3t3 b3t4)
1400 NestLoop(bmt2 bmt3 bmt4 c1)
1401 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
1402 Leading(c1 bmt4 bmt3 bmt2 bmt1)
1403 Leading(b1t4 b1t3 b1t2 b1t1)
1404 Leading(b2t4 b2t3 b2t2 b2t1)
1405 Leading(b3t4 b3t3 b3t2 b3t1)
1411 Leading(c1 bmt4 bmt3 bmt2 bmt1)
1412 Leading(b1t4 b1t3 b1t2 b1t1)
1413 Leading(b2t4 b2t3 b2t2 b2t1)
1414 Leading(b3t4 b3t3 b3t2 b3t1)
1416 HashJoin(c1 bmt4 bmt3)
1417 NestLoop(c1 bmt4 bmt3 bmt2)
1418 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
1420 NestLoop(b1t4 b1t3 b1t2)
1421 MergeJoin(b1t4 b1t3 b1t2 b1t1)
1423 NestLoop(b2t4 b2t3 b2t2)
1424 MergeJoin(b2t4 b2t3 b2t2 b2t1)
1426 NestLoop(b3t4 b3t3 b3t2)
1427 MergeJoin(b3t4 b3t3 b3t2 b3t1)
1429 Rows(c1 bmt4 bmt3 #1)
1430 Rows(c1 bmt4 bmt3 bmt2 #1)
1431 Rows(c1 bmt4 bmt3 bmt2 bmt1 #1)
1433 Rows(b1t4 b1t3 b1t2 #1)
1434 Rows(b1t4 b1t3 b1t2 b1t1 #1)
1436 Rows(b2t4 b2t3 b2t2 #1)
1437 Rows(b2t4 b2t3 b2t2 b2t1 #1)
1439 Rows(b3t4 b3t3 b3t2 #1)
1440 Rows(b3t4 b3t3 b3t2 b3t1 #1)
1444 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
1447 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
1449 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
1451 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
1460 NestLoop(b1t2 b1t3 b1t4)
1461 NestLoop(b2t2 b2t3 b2t4)
1462 NestLoop(b3t2 b3t3 b3t4)
1463 HashJoin(bmt3 bmt4 c1)
1464 MergeJoin(b1t1 b1t2 b1t3 b1t4)
1465 MergeJoin(b2t1 b2t2 b2t3 b2t4)
1466 MergeJoin(b3t1 b3t2 b3t3 b3t4)
1467 NestLoop(bmt2 bmt3 bmt4 c1)
1468 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
1469 Leading(c1 bmt4 bmt3 bmt2 bmt1)
1470 Leading(b1t4 b1t3 b1t2 b1t1)
1471 Leading(b2t4 b2t3 b2t2 b2t1)
1472 Leading(b3t4 b3t3 b3t2 b3t1)
1477 Rows(b1t2 b1t3 b1t4 #1)
1478 Rows(b2t2 b2t3 b2t4 #1)
1479 Rows(b3t2 b3t3 b3t4 #1)
1480 Rows(bmt3 bmt4 c1 #1)
1481 Rows(b1t1 b1t2 b1t3 b1t4 #1)
1482 Rows(b2t1 b2t2 b2t3 b2t4 #1)
1483 Rows(b3t1 b3t2 b3t3 b3t4 #1)
1484 Rows(bmt2 bmt3 bmt4 c1 #1)
1485 Rows(bmt1 bmt2 bmt3 bmt4 c1 #1)
1491 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-2-3.out.log > results/R_2-2-3.out
1492 \! diff expected/R_2-2-3.out results/R_2-2-3.out
1494 \o results/R_2-2-4.out.log
1496 Leading(c1 bmt4 bmt3 bmt2 bmt1)
1497 Leading(b1t4 b1t3 b1t2 b1t1)
1499 HashJoin(c1 bmt4 bmt3)
1500 NestLoop(c1 bmt4 bmt3 bmt2)
1501 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
1502 MergeJoin(b1t4 b1t3)
1503 HashJoin(b1t4 b1t3 b1t2)
1504 NestLoop(b1t4 b1t3 b1t2 b1t1)
1508 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
1511 SELECT b2t1.c1 FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
1513 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
1515 SELECT b3t1.c1 FROM s1.t1 b3t1
1520 MergeJoin(b1t3 b1t4)
1522 HashJoin(b1t2 b1t3 b1t4)
1523 HashJoin(bmt3 bmt4 c1)
1524 NestLoop(b1t1 b1t2 b1t3 b1t4)
1525 NestLoop(bmt2 bmt3 bmt4 c1)
1526 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
1527 Leading(c1 bmt4 bmt3 bmt2 bmt1)
1528 Leading(b1t4 b1t3 b1t2 b1t1)
1534 Leading(c1 bmt4 bmt3 bmt2 bmt1)
1535 Leading(b1t4 b1t3 b1t2 b1t1)
1537 HashJoin(c1 bmt4 bmt3)
1538 NestLoop(c1 bmt4 bmt3 bmt2)
1539 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
1540 MergeJoin(b1t4 b1t3)
1541 HashJoin(b1t4 b1t3 b1t2)
1542 NestLoop(b1t4 b1t3 b1t2 b1t1)
1544 Rows(c1 bmt4 bmt3 #1)
1545 Rows(c1 bmt4 bmt3 bmt2 #1)
1546 Rows(c1 bmt4 bmt3 bmt2 bmt1 #1)
1548 Rows(b1t4 b1t3 b1t2 #1)
1549 Rows(b1t4 b1t3 b1t2 b1t1 #1)
1553 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
1556 SELECT b2t1.c1 FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
1558 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
1560 SELECT b3t1.c1 FROM s1.t1 b3t1
1565 MergeJoin(b1t3 b1t4)
1567 HashJoin(b1t2 b1t3 b1t4)
1568 HashJoin(bmt3 bmt4 c1)
1569 NestLoop(b1t1 b1t2 b1t3 b1t4)
1570 NestLoop(bmt2 bmt3 bmt4 c1)
1571 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
1572 Leading(c1 bmt4 bmt3 bmt2 bmt1)
1573 Leading(b1t4 b1t3 b1t2 b1t1)
1576 Rows(b1t2 b1t3 b1t4 #1)
1577 Rows(bmt3 bmt4 c1 #1)
1578 Rows(b1t1 b1t2 b1t3 b1t4 #1)
1579 Rows(bmt2 bmt3 bmt4 c1 #1)
1580 Rows(bmt1 bmt2 bmt3 bmt4 c1 #1)
1586 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-2-4.out.log > results/R_2-2-4.out
1587 \! diff expected/R_2-2-4.out results/R_2-2-4.out
1589 ---- No. R-2-3 RULE or VIEW
1592 \o results/R_2-3-1.out.log
1594 Leading(r1 t1 t2 t3 t4)
1596 EXPLAIN UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1;
1599 Leading(r1 t1 t2 t3 t4)
1605 Leading(r1 t1 t2 t3 t4)
1606 Rows(r1 t1 t2 t3 t4 #2)
1607 Rows(r1 t1 t2 t3 #2)
1611 EXPLAIN UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1;
1614 Leading(r1 t1 t2 t3 t4)
1617 Rows(r1 t1 t2 t3 #2)
1618 Rows(r1 t1 t2 t3 t4 #2)
1624 Leading(r1_ b1t1 b1t2 b1t3 b1t4)
1626 EXPLAIN UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1;
1629 Leading(r1_ b1t1 b1t2 b1t3 b1t4)
1635 Leading(r1_ b1t1 b1t2 b1t3 b1t4)
1636 Rows(r1_ b1t1 b1t2 b1t3 b1t4 #2)
1637 Rows(r1_ b1t1 b1t2 b1t3 #2)
1638 Rows(r1_ b1t1 b1t2 #2)
1641 EXPLAIN UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1;
1644 Leading(r1_ b1t1 b1t2 b1t3 b1t4)
1646 Rows(b1t1 b1t2 r1_ #2)
1647 Rows(b1t1 b1t2 b1t3 r1_ #2)
1648 Rows(b1t1 b1t2 b1t3 b1t4 r1_ #2)
1654 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-3-1.out.log > results/R_2-3-1.out
1655 \! diff expected/R_2-3-1.out results/R_2-3-1.out
1657 \o results/R_2-3-2.out.log
1659 Leading(r2 t1 t2 t3 t4)
1661 EXPLAIN UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1;
1664 Leading(r2 t1 t2 t3 t4)
1671 Leading(r2 t1 t2 t3 t4)
1677 Leading(r2 t1 t2 t3 t4)
1678 Rows(r2 t1 t2 t3 t4 #2)
1679 Rows(r2 t1 t2 t3 #2)
1683 EXPLAIN UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1;
1686 Leading(r2 t1 t2 t3 t4)
1689 Rows(r2 t1 t2 t3 #2)
1690 Rows(r2 t1 t2 t3 t4 #2)
1697 Leading(r2 t1 t2 t3 t4)
1700 Rows(r2 t1 t2 t3 #2)
1701 Rows(r2 t1 t2 t3 t4 #2)
1707 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
1708 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
1710 EXPLAIN UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1;
1713 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
1715 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
1721 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
1723 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
1728 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
1729 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
1731 Rows(r2_ b1t1 b1t2 #2)
1732 Rows(r2_ b1t1 b1t2 b1t3 #2)
1733 Rows(r2_ b1t1 b1t2 b1t3 b1t4 #2)
1735 Rows(r2_ b2t1 b2t2 #2)
1736 Rows(r2_ b2t1 b2t2 b2t3 #2)
1737 Rows(r2_ b2t1 b2t2 b2t3 b2t4 #2)
1739 EXPLAIN UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1;
1742 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
1744 Rows(b1t1 b1t2 r2_ #2)
1745 Rows(b1t1 b1t2 b1t3 r2_ #2)
1746 Rows(b1t1 b1t2 b1t3 b1t4 r2_ #2)
1748 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
1750 Rows(b2t1 b2t2 r2_ #2)
1751 Rows(b2t1 b2t2 b2t3 r2_ #2)
1752 Rows(b2t1 b2t2 b2t3 b2t4 r2_ #2)
1758 Leading(r2_ b2t1 b2t2 b2t3 b2t4)
1760 Rows(b2t1 b2t2 r2_ #2)
1761 Rows(b2t1 b2t2 b2t3 r2_ #2)
1762 Rows(b2t1 b2t2 b2t3 b2t4 r2_ #2)
1764 Leading(r2_ b1t1 b1t2 b1t3 b1t4)
1766 Rows(b1t1 b1t2 r2_ #2)
1767 Rows(b1t1 b1t2 b1t3 r2_ #2)
1768 Rows(b1t1 b1t2 b1t3 b1t4 r2_ #2)
1773 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-3-2.out.log > results/R_2-3-2.out
1774 \! diff expected/R_2-3-2.out results/R_2-3-2.out
1776 \o results/R_2-3-3.out.log
1778 Leading(r3 t1 t2 t3 t4)
1780 EXPLAIN UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1;
1783 Leading(r3 t1 t2 t3 t4)
1790 Leading(r3 t1 t2 t3 t4)
1797 Leading(r3 t1 t2 t3 t4)
1803 Leading(r3 t1 t2 t3 t4)
1804 Rows(r3 t1 t2 t3 t4 #2)
1805 Rows(r3 t1 t2 t3 #2)
1809 EXPLAIN UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1;
1812 Leading(r3 t1 t2 t3 t4)
1815 Rows(r3 t1 t2 t3 #2)
1816 Rows(r3 t1 t2 t3 t4 #2)
1823 Leading(r3 t1 t2 t3 t4)
1826 Rows(r3 t1 t2 t3 #2)
1827 Rows(r3 t1 t2 t3 t4 #2)
1834 Leading(r3 t1 t2 t3 t4)
1837 Rows(r3 t1 t2 t3 #2)
1838 Rows(r3 t1 t2 t3 t4 #2)
1844 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
1845 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
1846 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
1848 EXPLAIN UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1;
1851 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
1853 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
1854 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
1860 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
1862 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
1863 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
1869 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
1871 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
1872 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
1877 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
1878 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
1879 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
1881 Rows(r3_ b1t1 b1t2 #2)
1882 Rows(r3_ b1t1 b1t2 b1t3 #2)
1883 Rows(r3_ b1t1 b1t2 b1t3 b1t4 #2)
1885 Rows(r3_ b2t1 b2t2 #2)
1886 Rows(r3_ b2t1 b2t2 b2t3 #2)
1887 Rows(r3_ b2t1 b2t2 b2t3 b2t4 #2)
1889 Rows(r3_ b3t1 b3t2 #2)
1890 Rows(r3_ b3t1 b3t2 b3t3 #2)
1891 Rows(r3_ b3t1 b3t2 b3t3 b3t4 #2)
1893 EXPLAIN UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1;
1896 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
1898 Rows(b1t1 b1t2 r3_ #2)
1899 Rows(b1t1 b1t2 b1t3 r3_ #2)
1900 Rows(b1t1 b1t2 b1t3 b1t4 r3_ #2)
1902 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
1903 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
1906 Rows(b2t1 b2t2 r3_ #2)
1907 Rows(b3t1 b3t2 r3_ #2)
1908 Rows(b2t1 b2t2 b2t3 r3_ #2)
1909 Rows(b3t1 b3t2 b3t3 r3_ #2)
1910 Rows(b2t1 b2t2 b2t3 b2t4 r3_ #2)
1911 Rows(b3t1 b3t2 b3t3 b3t4 r3_ #2)
1917 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
1919 Rows(b2t1 b2t2 r3_ #2)
1920 Rows(b2t1 b2t2 b2t3 r3_ #2)
1921 Rows(b2t1 b2t2 b2t3 b2t4 r3_ #2)
1923 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
1924 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
1927 Rows(b1t1 b1t2 r3_ #2)
1928 Rows(b3t1 b3t2 r3_ #2)
1929 Rows(b1t1 b1t2 b1t3 r3_ #2)
1930 Rows(b3t1 b3t2 b3t3 r3_ #2)
1931 Rows(b1t1 b1t2 b1t3 b1t4 r3_ #2)
1932 Rows(b3t1 b3t2 b3t3 b3t4 r3_ #2)
1938 Leading(r3_ b3t1 b3t2 b3t3 b3t4)
1940 Rows(b3t1 b3t2 r3_ #2)
1941 Rows(b3t1 b3t2 b3t3 r3_ #2)
1942 Rows(b3t1 b3t2 b3t3 b3t4 r3_ #2)
1944 Leading(r3_ b1t1 b1t2 b1t3 b1t4)
1945 Leading(r3_ b2t1 b2t2 b2t3 b2t4)
1948 Rows(b1t1 b1t2 r3_ #2)
1949 Rows(b2t1 b2t2 r3_ #2)
1950 Rows(b1t1 b1t2 b1t3 r3_ #2)
1951 Rows(b2t1 b2t2 b2t3 r3_ #2)
1952 Rows(b1t1 b1t2 b1t3 b1t4 r3_ #2)
1953 Rows(b2t1 b2t2 b2t3 b2t4 r3_ #2)
1958 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-3-3.out.log > results/R_2-3-3.out
1959 \! diff expected/R_2-3-3.out results/R_2-3-3.out
1961 \o results/R_2-3-4.out.log
1962 /*+HashJoin(v1t1 v1t1)*/
1963 EXPLAIN SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
1964 INFO: hint syntax error at or near "HashJoin(v1t1 v1t1)"
1965 DETAIL: Relation name "v1t1" is ambiguous.
1973 /*+HashJoin(v1t1 v1t1)Rows(v1t1 v1t1 #1)*/
1974 EXPLAIN SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
1975 INFO: hint syntax error at or near "HashJoin(v1t1 v1t1)Rows(v1t1 v1t1 #1)"
1976 DETAIL: Relation name "v1t1" is ambiguous.
1977 INFO: hint syntax error at or near "Rows(v1t1 v1t1 #1)"
1978 DETAIL: Relation name "v1t1" is ambiguous.
1988 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-3-4.out.log > results/R_2-3-4.out
1989 \! diff expected/R_2-3-4.out results/R_2-3-4.out
1991 \o results/R_2-3-5.out.log
1992 /*+NestLoop(v1t1 v1t1_)*/
1993 EXPLAIN SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
1996 NestLoop(v1t1 v1t1_)
2001 /*+NestLoop(v1t1 v1t1_)Rows(v1t1 v1t1_ #1)*/
2002 EXPLAIN SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
2005 NestLoop(v1t1 v1t1_)
2012 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-3-5.out.log > results/R_2-3-5.out
2013 \! diff expected/R_2-3-5.out results/R_2-3-5.out
2015 \o results/R_2-3-6.out.log
2016 /*+RowsHashJoin(r4t1 r4t1)*/
2017 EXPLAIN SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
2018 INFO: hint syntax error at or near "RowsHashJoin(r4t1 r4t1)"
2019 DETAIL: Unrecognized hint keyword "RowsHashJoin".
2020 /*+RowsHashJoin(r4t1 r4t1)Rows(r4t1 r4t1 #1)*/
2021 EXPLAIN SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
2022 INFO: hint syntax error at or near "RowsHashJoin(r4t1 r4t1)Rows(r4t1 r4t1 #1)"
2023 DETAIL: Unrecognized hint keyword "RowsHashJoin".
2025 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-3-6.out.log > results/R_2-3-6.out
2026 \! diff expected/R_2-3-6.out results/R_2-3-6.out
2028 \o results/R_2-3-7.out.log
2029 /*+NestLoop(r4t1 r5t1)*/
2030 EXPLAIN SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
2038 /*+NestLoop(r4t1 r5t1)Rows(r4t1 r5t1 #1)*/
2039 EXPLAIN SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
2049 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-3-7.out.log > results/R_2-3-7.out
2050 \! diff expected/R_2-3-7.out results/R_2-3-7.out
2052 ---- No. R-2-4 VALUES clause
2055 \o results/R_2-4-1.out.log
2056 EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
2057 /*+ Leading(t3 t1 t2) Rows(t3 t1 #2)Rows(t3 t1 t2 #2)*/
2058 EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
2068 /*+ Leading(*VALUES* t1 t2) Rows(*VALUES* t1 #2)Rows(*VALUES* t1 t2 #2)*/
2069 EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
2072 Leading(*VALUES* t1 t2)
2073 Rows(*VALUES* t1 #2)
2074 Rows(*VALUES* t1 t2 #2)
2080 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-4-1.out.log > results/R_2-4-1.out
2081 \! diff expected/R_2-4-1.out results/R_2-4-1.out
2083 \o results/R_2-4-2.out.log
2084 EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) 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;
2085 /*+ Leading(t4 t3 t2 t1) Rows(t4 t3 #2) Rows(t4 t3 t2 #2)Rows(t4 t3 t2 t1 #2)*/
2086 EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) 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;
2090 Leading(t4 t3 t2 t1)
2093 Rows(t1 t2 t3 t4 #2)
2097 /*+ Leading(*VALUES* t3 t2 t1) Rows(t4 t3 #2)Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)*/
2098 EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) 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;
2099 INFO: hint syntax error at or near "Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)"
2100 DETAIL: Relation name "*VALUES*" is ambiguous.
2101 INFO: hint syntax error at or near "Rows(*VALUES* t3 t2 t1 #2)"
2102 DETAIL: Relation name "*VALUES*" is ambiguous.
2103 INFO: 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)"
2104 DETAIL: Relation name "*VALUES*" is ambiguous.
2111 Leading(*VALUES* t3 t2 t1)
2112 Rows(*VALUES* t2 t3 #2)
2113 Rows(*VALUES* t1 t2 t3 #2)
2116 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-4-2.out.log > results/R_2-4-2.out
2117 \! diff expected/R_2-4-2.out results/R_2-4-2.out
2122 \o results/R_2-5-1.out.log
2123 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;
2125 Leading(bmt4 bmt3 bmt2 bmt1)
2126 Rows(bmt1 bmt2 bmt3 bmt4 *0.7)
2128 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;
2131 Leading(bmt4 bmt3 bmt2 bmt1)
2132 Rows(bmt1 bmt2 bmt3 bmt4 *0.7)
2138 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-5-1.out.log > results/R_2-5-1.out
2139 \! diff expected/R_2-5-1.out results/R_2-5-1.out
2141 \o results/R_2-5-2.out.log
2142 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;
2144 Leading(bmt4 bmt3 bmt2 bmt1)
2145 Rows(bmt4 bmt3 *0.6)
2147 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;
2150 Leading(bmt4 bmt3 bmt2 bmt1)
2151 Rows(bmt3 bmt4 *0.6)
2157 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-5-2.out.log > results/R_2-5-2.out
2158 \! diff expected/R_2-5-2.out results/R_2-5-2.out
2160 \o results/R_2-5-3.out.log
2161 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;
2163 Leading(bmt4 bmt3 bmt2 bmt1)
2164 Rows(bmt4 bmt1 *0.5)
2166 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;
2169 Leading(bmt4 bmt3 bmt2 bmt1)
2170 Rows(bmt1 bmt4 *0.5)
2176 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_2-5-3.out.log > results/R_2-5-3.out
2177 \! diff expected/R_2-5-3.out results/R_2-5-3.out
2179 ---- No. R-3-1 abusolute value
2182 \o results/R_3-1-1.out.log
2184 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2185 WARNING: make rows estimation 1 since below 1 : Rows(t1 t2 #0)
2194 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-1-1.out.log > results/R_3-1-1.out
2195 \! diff expected/R_3-1-1.out results/R_3-1-1.out
2197 \o results/R_3-1-2.out.log
2199 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2208 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-1-2.out.log > results/R_3-1-2.out
2209 \! diff expected/R_3-1-2.out results/R_3-1-2.out
2211 ---- No. R-3-2 increase or decrease value
2214 \o results/R_3-2-1.out.log
2216 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2225 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-2-1.out.log > results/R_3-2-1.out
2226 \! diff expected/R_3-2-1.out results/R_3-2-1.out
2228 \o results/R_3-2-2.out.log
2230 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2239 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-2-2.out.log > results/R_3-2-2.out
2240 \! diff expected/R_3-2-2.out results/R_3-2-2.out
2242 \o results/R_3-2-3.out.log
2243 /*+Rows(t1 t2 -1000)*/
2244 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2245 WARNING: make rows estimation 1 since below 1 : Rows(t1 t2 -1000)
2254 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-2-3.out.log > results/R_3-2-3.out
2255 \! diff expected/R_3-2-3.out results/R_3-2-3.out
2257 ---- No. R-3-3 multiple
2260 \o results/R_3-3-1.out.log
2262 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2263 WARNING: make rows estimation 1 since below 1 : Rows(t1 t2 *0)
2272 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-3-1.out.log > results/R_3-3-1.out
2273 \! diff expected/R_3-3-1.out results/R_3-3-1.out
2275 \o results/R_3-3-2.out.log
2277 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2286 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-3-2.out.log > results/R_3-3-2.out
2287 \! diff expected/R_3-3-2.out results/R_3-3-2.out
2289 \o results/R_3-3-3.out.log
2290 /*+Rows(t1 t2 *0.1)*/
2291 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2300 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-3-3.out.log > results/R_3-3-3.out
2301 \! diff expected/R_3-3-3.out results/R_3-3-3.out
2303 ---- No. R-3-4 join inherit tables
2306 \o results/R_3-4-1.out.log
2307 EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
2309 EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
2318 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-4-1.out.log > results/R_3-4-1.out
2319 \! diff expected/R_3-4-1.out results/R_3-4-1.out
2321 \o results/R_3-4-2.out.log
2322 EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
2323 /*+Rows(p1c1 p2c1 #1)*/
2324 EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
2333 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-4-2.out.log > results/R_3-4-2.out
2334 \! diff expected/R_3-4-2.out results/R_3-4-2.out
2336 ---- No. R-3-5 conflict join method hint
2339 \o results/R_3-5-1.out.log
2340 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2341 /*+Rows(t1 t2 #1)Rows(t1 t2 #1)*/
2342 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2343 INFO: hint syntax error at or near "Rows(t1 t2 #1)Rows(t1 t2 #1)"
2344 DETAIL: Conflict rows hint.
2354 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-5-1.out.log > results/R_3-5-1.out
2355 \! diff expected/R_3-5-1.out results/R_3-5-1.out
2357 \o results/R_3-5-2.out.log
2358 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2359 /*+Rows(t1 t2 #1)Rows(t1 t2 #1)Rows(t1 t2 #1)*/
2360 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2361 INFO: hint syntax error at or near "Rows(t1 t2 #1)Rows(t1 t2 #1)Rows(t1 t2 #1)"
2362 DETAIL: Conflict rows hint.
2363 INFO: hint syntax error at or near "Rows(t1 t2 #1)Rows(t1 t2 #1)"
2364 DETAIL: Conflict rows hint.
2375 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-5-2.out.log > results/R_3-5-2.out
2376 \! diff expected/R_3-5-2.out results/R_3-5-2.out
2378 \o results/R_3-5-3.out.log
2379 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2380 /*+Rows(t1 t2 #1)Rows(t2 t1 #1)*/
2381 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2382 INFO: hint syntax error at or near "Rows(t1 t2 #1)Rows(t2 t1 #1)"
2383 DETAIL: Conflict rows hint.
2393 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-5-3.out.log > results/R_3-5-3.out
2394 \! diff expected/R_3-5-3.out results/R_3-5-3.out
2396 \o results/R_3-5-4.out.log
2397 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2398 /*+Rows(t2 t1 #1)Rows(t1 t2 #1)Rows(t2 t1 #1)*/
2399 EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
2400 INFO: hint syntax error at or near "Rows(t2 t1 #1)Rows(t1 t2 #1)Rows(t2 t1 #1)"
2401 DETAIL: Conflict rows hint.
2402 INFO: hint syntax error at or near "Rows(t1 t2 #1)Rows(t2 t1 #1)"
2403 DETAIL: Conflict rows hint.
2414 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-5-4.out.log > results/R_3-5-4.out
2415 \! diff expected/R_3-5-4.out results/R_3-5-4.out