\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-1-1 specified pattern of the object name
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-1-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t_1.c1 = t_2.c1)
- -> Index Scan using t1_i1 on t1 t_1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 t_1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t_2.c1
- -> Seq Scan on t2 t_2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 t_2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-1-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t_1.c1 = t_2.c1)
- -> Index Scan using t1_i1 on t1 t_1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 t_1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t_2.c1
- -> Seq Scan on t2 t_2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 t_2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-1-2 specified schema name in the hint option
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-2-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-1-3 table doesn't exist in the hint option
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-3-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-1-4 conflict table name
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-4-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t1_1.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t1_1.c1
- -> Seq Scan on t1 t1_1 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t1 t1_1 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t1_1.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t1_1.c1
- -> Seq Scan on t1 t1_1 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t1 t1_1 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(s1.t1 s2.t1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t1_1.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t1_1.c1
- -> Seq Scan on t1 t1_1 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t1 t1_1 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
EXPLAIN SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = s2t1.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: s2t1.c1
- -> Seq Scan on t1 s2t1 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t1 s2t1 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 s2t1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = s2t1.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: s2t1.c1
- -> Seq Scan on t1 s2t1 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t1 s2t1 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-4-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
InitPlan 1 (returns $0)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1_1.c1 = t2_1.c1)
- -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2_1.c1
- -> Seq Scan on t2 t2_1 (cost=xxx rows=100 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t2 t2_1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(14 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
InitPlan 1 (returns $0)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1_1.c1 = t2_1.c1)
- -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2_1.c1
- -> Seq Scan on t2 t2_1 (cost=xxx rows=100 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t2 t2_1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(14 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(st1 st2 #1)Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
InitPlan 1 (returns $0)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (st1.c1 = st2.c1)
- -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: st2.c1
- -> Seq Scan on t2 st2 (cost=xxx rows=100 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t2 st2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(14 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-1-5 conflict table name
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-5-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-5-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
EXPLAIN SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Merge Join (cost=xxx rows=1000 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
Merge Cond: (t1.c1 = t3.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Index Scan using t3_i1 on t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Scan using t3_i1 on t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(9 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+(t1 t2 t1 t2)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Merge Join (cost=xxx rows=1000 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
Merge Cond: (t1.c1 = t3.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Index Scan using t3_i1 on t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Scan using t3_i1 on t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Index Scan using t4_i1 on t4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Scan using t4_i1 on t4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = t1.c1)
-(12 rows)
----
---- No. R-1-6 object type for the hint
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-6-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------
- Hash Join (cost=xxx rows=301 width=xxx)
+ Hash Join (cost=xxx..xxx rows=301 width=xxx)
Hash Cond: (t1.c1 = t2.c1)
- -> Append (cost=xxx rows=301 width=xxx)
- -> Seq Scan on p1 t1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p1c1 t1_1 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c2 t1_2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c3 t1_3 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=301 width=xxx)
- -> Append (cost=xxx rows=301 width=xxx)
- -> Seq Scan on p1 t2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p1c1 t2_1 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c2 t2_2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c3 t2_3 (cost=xxx rows=100 width=xxx)
-(13 rows)
+ -> Append (cost=xxx..xxx rows=301 width=xxx)
+ -> Seq Scan on p1 t1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p1c1 t1_1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c2 t1_2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c3 t1_3 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=301 width=xxx)
+ -> Append (cost=xxx..xxx rows=301 width=xxx)
+ -> Seq Scan on p1 t2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p1c1 t2_1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c2 t2_2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c3 t2_3 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (t1.c1 = t2.c1)
- -> Append (cost=xxx rows=301 width=xxx)
- -> Seq Scan on p1 t1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p1c1 t1_1 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c2 t1_2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c3 t1_3 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=301 width=xxx)
- -> Append (cost=xxx rows=301 width=xxx)
- -> Seq Scan on p1 t2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p1c1 t2_1 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c2 t2_2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c3 t2_3 (cost=xxx rows=100 width=xxx)
-(13 rows)
+ -> Append (cost=xxx..xxx rows=301 width=xxx)
+ -> Seq Scan on p1 t1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p1c1 t1_1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c2 t1_2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c3 t1_3 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=301 width=xxx)
+ -> Append (cost=xxx..xxx rows=301 width=xxx)
+ -> Seq Scan on p1 t2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p1c1 t2_1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c2 t2_2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c3 t2_3 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-6-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------
- Hash Join (cost=xxx rows=1130 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (t1.c1 = t2.c1)
- -> Seq Scan on ul1 t1 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on ul1 t2 (cost=xxx rows=1130 width=xxx)
-(5 rows)
+ -> Seq Scan on ul1 t1 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on ul1 t2 (cost=xxx..xxx rows=1130 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------
- Hash Join (cost=xxx rows=1 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (t1.c1 = t2.c1)
- -> Seq Scan on ul1 t1 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on ul1 t2 (cost=xxx rows=1130 width=xxx)
-(5 rows)
+ -> Seq Scan on ul1 t1 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on ul1 t2 (cost=xxx..xxx rows=1130 width=xxx)
-- No. R-1-6-4
CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------
- Hash Join (cost=xxx rows=1130 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (t1.c1 = t2.c1)
- -> Seq Scan on tm1 t1 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on tm1 t2 (cost=xxx rows=1130 width=xxx)
-(5 rows)
+ -> Seq Scan on tm1 t1 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on tm1 t2 (cost=xxx..xxx rows=1130 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------
- Hash Join (cost=xxx rows=1 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (t1.c1 = t2.c1)
- -> Seq Scan on tm1 t1 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on tm1 t2 (cost=xxx rows=1130 width=xxx)
-(5 rows)
+ -> Seq Scan on tm1 t1 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on tm1 t2 (cost=xxx..xxx rows=1130 width=xxx)
-- No. R-1-6-5
-CREATE TEMP TABLE t_pg_class WITH OIDS AS SELECT * from pg_class LIMIT 100;
+CREATE TEMP TABLE t_pg_class AS SELECT * from pg_class LIMIT 100;
\o results/ut-R.tmpout
EXPLAIN SELECT * FROM t_pg_class t1, t_pg_class t2 WHERE t1.oid = t2.oid;
\o
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------
- Hash Join (cost=xxx rows=310 width=xxx)
+ Hash Join (cost=xxx..xxx rows=450 width=xxx)
Hash Cond: (t1.oid = t2.oid)
- -> Seq Scan on t_pg_class t1 (cost=xxx rows=310 width=xxx)
- -> Hash (cost=xxx rows=310 width=xxx)
- -> Seq Scan on t_pg_class t2 (cost=xxx rows=310 width=xxx)
-(5 rows)
+ -> Seq Scan on t_pg_class t1 (cost=xxx..xxx rows=300 width=xxx)
+ -> Hash (cost=xxx..xxx rows=300 width=xxx)
+ -> Seq Scan on t_pg_class t2 (cost=xxx..xxx rows=300 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (t1.oid = t2.oid)
- -> Seq Scan on t_pg_class t1 (cost=xxx rows=310 width=xxx)
- -> Hash (cost=xxx rows=310 width=xxx)
- -> Seq Scan on t_pg_class t2 (cost=xxx rows=310 width=xxx)
-(5 rows)
+ -> Seq Scan on t_pg_class t1 (cost=xxx..xxx rows=300 width=xxx)
+ -> Hash (cost=xxx..xxx rows=300 width=xxx)
+ -> Seq Scan on t_pg_class t2 (cost=xxx..xxx rows=300 width=xxx)
-- No. R-1-6-6
-- refer ut-fdw.sql
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t2.c1)
- -> Function Scan on f1 t1 (cost=xxx rows=1 width=xxx)
- -> Function Scan on f1 t2 (cost=xxx rows=1 width=xxx)
-(4 rows)
+ -> Function Scan on f1 t1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Function Scan on f1 t2 (cost=xxx..xxx rows=1 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t2.c1)
- -> Function Scan on f1 t1 (cost=xxx rows=1 width=xxx)
- -> Function Scan on f1 t2 (cost=xxx rows=1 width=xxx)
-(4 rows)
+ -> Function Scan on f1 t1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Function Scan on f1 t2 (cost=xxx..xxx rows=1 width=xxx)
-- No. R-1-6-8
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=3 width=xxx)
+ Hash Join (cost=xxx..xxx rows=3 width=xxx)
Hash Cond: (t2.c1 = "*VALUES*".column1)
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=3 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=3 width=xxx)
-(5 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=3 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=3 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=3 width=xxx)
+ Hash Join (cost=xxx..xxx rows=3 width=xxx)
Hash Cond: (t2.c1 = "*VALUES*".column1)
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=3 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=3 width=xxx)
-(5 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=3 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=3 width=xxx)
\o results/ut-R.tmpout
/*+Rows(*VALUES* t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (t2.c1 = "*VALUES*".column1)
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=3 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=3 width=xxx)
-(5 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=3 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=3 width=xxx)
-- No. R-1-6-9
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
CTE c1
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1_1.c1 = t2.c1)
- -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = c1.c1)
-(12 rows)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)Rows(t1 c1 +1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=2 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=2 width=xxx)
CTE c1
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1_1.c1 = t2.c1)
- -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 t1_1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = c1.c1)
-(12 rows)
-- No. R-1-6-10
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1000 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (v1t1.c1 = v1t1_1.c1)
- -> Seq Scan on t1 v1t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 v1t1_1 (cost=xxx rows=1000 width=xxx)
-(5 rows)
+ -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 v1t1_1 (cost=xxx..xxx rows=1000 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1000 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (v1t1.c1 = v1t1_1.c1)
- -> Seq Scan on t1 v1t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 v1t1_1 (cost=xxx rows=1000 width=xxx)
-(5 rows)
+ -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 v1t1_1 (cost=xxx..xxx rows=1000 width=xxx)
\o results/ut-R.tmpout
/*+Rows(v1t1 v1t1_ #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (v1t1.c1 = v1t1_.c1)
- -> Seq Scan on t1 v1t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 v1t1_ (cost=xxx rows=1000 width=xxx)
-(5 rows)
+ -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 v1t1_ (cost=xxx..xxx rows=1000 width=xxx)
-- No. R-1-6-11
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $0)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (st1.c1 = st2.c1)
- -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: st2.c1
- -> Seq Scan on t2 st2 (cost=xxx rows=100 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 st2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = $0)
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (c1 = $0)
-(13 rows)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)Rows(st1 st2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $0)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (st1.c1 = st2.c1)
- -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: st2.c1
- -> Seq Scan on t2 st2 (cost=xxx rows=100 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 st2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = $0)
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (c1 = $0)
-(13 rows)
--
-- There are cases where difference in the measured value and predicted value
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 st2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-1-7 specified number of conditions
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-7-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-1-7-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-2-1 some complexity query blocks
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $1)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1000 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (b2t3.c1 = b2t1.c1)
- -> Merge Join (cost=xxx rows=1130 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(43 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $1)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b2t1.c1 = b2t3.c1)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(43 rows)
-- No. R-2-1-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $1)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1000 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (b2t3.c1 = b2t1.c1)
- -> Merge Join (cost=xxx rows=1130 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
InitPlan 3 (returns $5)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b3t1.c1 = b3t2.c1)
- -> Merge Join (cost=xxx rows=1000 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
Merge Cond: (b3t1.c1 = b3t4.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b3t1.c1)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(56 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $1)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b2t1.c1 = b2t3.c1)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
InitPlan 3 (returns $5)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b3t1.c1 = b3t2.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b3t1.c1 = b3t4.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b3t1.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(56 rows)
-- No. R-2-1-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt2.c1)
- -> Hash Join (cost=xxx rows=1130 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
-(15 rows)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (bmt2.c1 = bmt1.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt3.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt3.c1)
-(13 rows)
-- No. R-2-1-4
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt2.c1)
- -> Hash Join (cost=xxx rows=1130 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
-(15 rows)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (bmt2.c1 = bmt1.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt3.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt3.c1)
-(13 rows)
-- No. R-2-1-5
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $1)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1000 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (b2t3.c1 = b2t1.c1)
- -> Merge Join (cost=xxx rows=1130 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=998 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=998 width=xxx)
Filter: ((c1 <> $1) AND (c1 <> $3))
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(44 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $1)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b2t1.c1 = b2t3.c1)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=998 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=998 width=xxx)
Filter: ((c1 <> $1) AND (c1 <> $3))
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(44 rows)
-- No. R-2-1-6
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $1)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1000 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (b2t3.c1 = b2t1.c1)
- -> Merge Join (cost=xxx rows=1130 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
InitPlan 3 (returns $5)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b3t1.c1 = b3t2.c1)
- -> Merge Join (cost=xxx rows=1000 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
Merge Cond: (b3t1.c1 = b3t4.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b3t1.c1)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=997 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=997 width=xxx)
Filter: ((c1 <> $1) AND (c1 <> $3) AND (c1 <> $5))
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(57 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
InitPlan 1 (returns $1)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b2t1.c1 = b2t3.c1)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
InitPlan 3 (returns $5)
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b3t1.c1 = b3t2.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b3t1.c1 = b3t4.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b3t1.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=997 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=997 width=xxx)
Filter: ((c1 <> $1) AND (c1 <> $3) AND (c1 <> $5))
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(57 rows)
-- No. R-2-1-7
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
CTE c1
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
CTE c2
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1000 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (b2t3.c1 = b2t1.c1)
- -> Merge Join (cost=xxx rows=1130 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt4.c1 = bmt1.c1)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt3.c1 = bmt1.c1)
- -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: bmt1.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt1.c1 = c1.c1)
- -> Seq Scan on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (c1.c1 = c2.c1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c1.c1
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c2.c1
- -> CTE Scan on c2 (cost=xxx rows=1 width=xxx)
- -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(54 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
CTE c1
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
CTE c2
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b2t1.c1 = b2t3.c1)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt4.c1 = bmt1.c1)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt3.c1 = bmt1.c1)
- -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: bmt1.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt1.c1 = c1.c1)
- -> Seq Scan on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (c1.c1 = c2.c1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c1.c1
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c2.c1
- -> CTE Scan on c2 (cost=xxx rows=1 width=xxx)
- -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(54 rows)
-- No. R-2-1-8
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
CTE c1
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
CTE c2
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1000 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (b2t3.c1 = b2t1.c1)
- -> Merge Join (cost=xxx rows=1130 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
CTE c3
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b3t1.c1 = b3t2.c1)
- -> Merge Join (cost=xxx rows=1000 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
Merge Cond: (b3t1.c1 = b3t4.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b3t1.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: bmt1.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (c1.c1 = bmt1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (c2.c1 = c1.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (c2.c1 = c3.c1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c2.c1
- -> CTE Scan on c2 (cost=xxx rows=1 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c3.c1
- -> CTE Scan on c3 (cost=xxx rows=1 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c3 (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = c2.c1)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(73 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
CTE c1
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b1t4.c1 = b1t2.c1)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t3.c1 = b1t2.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
CTE c2
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b2t1.c1 = b2t3.c1)
- -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t3.c1 = b2t4.c1)
- -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t1.c1)
CTE c3
- -> Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b3t1.c1 = b3t2.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b3t1.c1 = b3t4.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b3t1.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt1.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: bmt1.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (c1.c1 = bmt1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (c2.c1 = c1.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (c2.c1 = c3.c1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c2.c1
- -> CTE Scan on c2 (cost=xxx rows=1 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c3.c1
- -> CTE Scan on c3 (cost=xxx rows=1 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c3 (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = c2.c1)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(73 rows)
----
---- No. R-2-2 the number of the tables per quiry block
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
----------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
CTE c1
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
InitPlan 2 (returns $1)
- -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
InitPlan 3 (returns $2)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
Filter: (c1 <> $2)
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (c1 = 1)
-(15 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
----------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
CTE c1
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
InitPlan 2 (returns $1)
- -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
InitPlan 3 (returns $2)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
Filter: (c1 <> $2)
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (c1 = 1)
-(15 rows)
-- No. R-2-2-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------
- Hash Join (cost=xxx rows=10 width=xxx)
+ Hash Join (cost=xxx..xxx rows=10 width=xxx)
Hash Cond: (bmt1.c1 = bmt2.c1)
CTE c1
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b1t1.c1 = b1t2.c1)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
InitPlan 2 (returns $1)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b2t1.c1 = b2t2.c1)
- -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b2t2.c1
- -> Seq Scan on t2 b2t2 (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=100 width=xxx)
InitPlan 3 (returns $2)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b3t1.c1 = b3t2.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b3t2.c1
- -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t1 bmt1 (cost=xxx rows=999 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t1 bmt1 (cost=xxx..xxx rows=999 width=xxx)
Filter: (c1 <> $2)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt2.c1 = c1.c1)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: c1.c1
- -> CTE Scan on c1 (cost=xxx rows=100 width=xxx)
-(34 rows)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt1.c1 = bmt2.c1)
CTE c1
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t1.c1 = b1t2.c1)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
InitPlan 2 (returns $1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t1.c1 = b2t2.c1)
- -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b2t2.c1
- -> Seq Scan on t2 b2t2 (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=100 width=xxx)
InitPlan 3 (returns $2)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b3t1.c1 = b3t2.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b3t2.c1
- -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t1 bmt1 (cost=xxx rows=999 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t1 bmt1 (cost=xxx..xxx rows=999 width=xxx)
Filter: (c1 <> $2)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt2.c1 = c1.c1)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c1.c1
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
-(34 rows)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
-- No. R-2-2-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=10 width=xxx)
+ Merge Join (cost=xxx..xxx rows=10 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
CTE c1
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b1t1.c1 = b1t2.c1)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b1t2.c1
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1130 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (b1t3.c1 = b1t4.c1)
- -> Seq Scan on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b1t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b2t1.c1 = b2t2.c1)
- -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b2t2.c1
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1130 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (b2t3.c1 = b2t4.c1)
- -> Seq Scan on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t3.c1)
InitPlan 3 (returns $5)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (b3t1.c1 = b3t2.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: b3t2.c1
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=1130 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (b3t3.c1 = b3t4.c1)
- -> Seq Scan on t3 b3t3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 b3t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b3t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 b3t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b3t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b3t3.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=999 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=999 width=xxx)
Filter: (c1 <> $5)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt4.c1 = c1.c1)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: c1.c1
- -> CTE Scan on c1 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt3.c1)
-(61 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
CTE c1
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t1.c1 = b1t2.c1)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b1t2.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b1t3.c1 = b1t4.c1)
- -> Seq Scan on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b1t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $3)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t1.c1 = b2t2.c1)
- -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b2t2.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b2t3.c1 = b2t4.c1)
- -> Seq Scan on t3 b2t3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 b2t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 b2t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 b2t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b2t3.c1)
InitPlan 3 (returns $5)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b3t1.c1 = b3t2.c1)
- -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b3t2.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b3t3.c1 = b3t4.c1)
- -> Seq Scan on t3 b3t3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 b3t4 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t2_i1 on t2 b3t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 b3t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 b3t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 b3t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b3t3.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=999 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=999 width=xxx)
Filter: (c1 <> $5)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: bmt2.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt4.c1 = c1.c1)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c1.c1
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
- -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt3.c1)
-(61 rows)
-- No. R-2-2-4
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=10 width=xxx)
+ Merge Join (cost=xxx..xxx rows=10 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
CTE c1
- -> Nested Loop (cost=xxx rows=100 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (b1t3.c1 = b1t2.c1)
- -> Merge Join (cost=xxx rows=1130 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1130 width=xxx)
Merge Cond: (b1t3.c1 = b1t4.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $2)
- -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
InitPlan 3 (returns $3)
- -> Seq Scan on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=999 width=xxx)
+ -> Seq Scan on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=999 width=xxx)
Filter: (c1 <> $3)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt4.c1 = c1.c1)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: c1.c1
- -> CTE Scan on c1 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt3.c1)
-(37 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
CTE c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t2.c1 = b1t1.c1)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (b1t3.c1 = b1t2.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t3.c1 = b1t4.c1)
- -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx)
- -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = b1t3.c1)
InitPlan 2 (returns $2)
- -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = 1)
InitPlan 3 (returns $3)
- -> Seq Scan on t1 b3t1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=999 width=xxx)
+ -> Seq Scan on t1 b3t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=999 width=xxx)
Filter: (c1 <> $3)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: bmt2.c1
- -> Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1 width=xxx)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (bmt4.c1 = c1.c1)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: c1.c1
- -> CTE Scan on c1 (cost=xxx rows=1 width=xxx)
- -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx)
+ -> CTE Scan on c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt3.c1)
-(37 rows)
----
---- No. R-2-3 RULE or VIEW
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r1 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r1 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
-(20 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t2.c1)
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r1 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r1 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
-(18 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
----------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t1.c1 = b1t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t1.c1 = b1t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t1.c1 = b1t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r1_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r1_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 b1t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 b1t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
-(20 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t4.c1)
- -> Tid Scan on t4 b1t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t3.c1)
- -> Tid Scan on t3 b1t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t2.c1)
- -> Seq Scan on t2 b1t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r1_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r1_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
-(18 rows)
-- No. R-2-3-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r2 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r2 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r2 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r2 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
-(41 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t2.c1)
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r2 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r2 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t2.c1)
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r2 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r2 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
-(37 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
----------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t1.c1 = b1t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t1.c1 = b1t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t1.c1 = b1t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r2_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r2_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 b1t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 b1t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b2t1.c1 = b2t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b2t1.c1 = b2t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t1.c1 = b2t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r2_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r2_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b2t2.c1
- -> Seq Scan on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 b2t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b2t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 b2t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b2t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
-(41 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t4.c1)
- -> Tid Scan on t4 b1t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t3.c1)
- -> Tid Scan on t3 b1t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t2.c1)
- -> Seq Scan on t2 b1t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r2_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r2_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b2t1.c1 = b2t4.c1)
- -> Tid Scan on t4 b2t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b2t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b2t1.c1 = b2t3.c1)
- -> Tid Scan on t3 b2t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b2t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b2t1.c1 = b2t2.c1)
- -> Seq Scan on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 b2t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r2_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r2_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
-(37 rows)
-- No. R-2-3-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
-(62 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t2.c1)
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t2.c1)
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t4.c1)
- -> Tid Scan on t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t3.c1)
- -> Tid Scan on t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (t1.c1 = t2.c1)
- -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3 (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3 (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
-(56 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
----------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t1.c1 = b1t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b1t1.c1 = b1t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b1t1.c1 = b1t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b1t2.c1
- -> Seq Scan on t2 b1t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 b1t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 b1t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b2t1.c1 = b2t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b2t1.c1 = b2t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b2t1.c1 = b2t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 b2t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b2t2.c1
- -> Seq Scan on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 b2t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b2t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 b2t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b2t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b3t1.c1 = b3t4.c1)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (b3t1.c1 = b3t3.c1)
- -> Merge Join (cost=xxx rows=1 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (b3t1.c1 = b3t2.c1)
- -> Nested Loop (cost=xxx rows=6 width=xxx)
- -> Index Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=6 width=xxx)
+ -> Index Scan using t1_i1 on t1 b3t1 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- -> Sort (cost=xxx rows=1 width=xxx)
+ -> Sort (cost=xxx..xxx rows=1 width=xxx)
Sort Key: b3t2.c1
- -> Seq Scan on t2 b3t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Tid Scan on t3 b3t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Tid Scan on t4 b3t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b3t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
-(62 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t4.c1)
- -> Tid Scan on t4 b1t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b1t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t3.c1)
- -> Tid Scan on t3 b1t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b1t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b1t1.c1 = b1t2.c1)
- -> Seq Scan on t2 b1t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b1t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 b1t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 b1t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b2t1.c1 = b2t4.c1)
- -> Tid Scan on t4 b2t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b2t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b2t1.c1 = b2t3.c1)
- -> Tid Scan on t3 b2t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b2t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b2t1.c1 = b2t2.c1)
- -> Seq Scan on t2 b2t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b2t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 b2t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 b2t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b3t1.c1 = b3t4.c1)
- -> Tid Scan on t4 b3t4 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t4 b3t4 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b3t1.c1 = b3t3.c1)
- -> Tid Scan on t3 b3t3 (cost=xxx rows=1 width=xxx)
+ -> Tid Scan on t3 b3t3 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
Join Filter: (b3t1.c1 = b3t2.c1)
- -> Seq Scan on t2 b3t2 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 b3t2 (cost=xxx..xxx rows=1 width=xxx)
Filter: (ctid = '(1,1)'::tid)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Tid Scan on t1 b3t1 (cost=xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Tid Scan on t1 b3t1 (cost=xxx..xxx rows=1 width=xxx)
TID Cond: (ctid = '(1,1)'::tid)
- -> Seq Scan on r3_ (cost=xxx rows=6 width=xxx)
+ -> Seq Scan on r3_ (cost=xxx..xxx rows=6 width=xxx)
Filter: (c1 = 1)
-(56 rows)
-- No. R-2-3-4
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1000 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (v1t1.c1 = v1t1_1.c1)
- -> Seq Scan on t1 v1t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 v1t1_1 (cost=xxx rows=1000 width=xxx)
-(5 rows)
+ -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 v1t1_1 (cost=xxx..xxx rows=1000 width=xxx)
\o results/ut-R.tmpout
/*+HashJoin(v1t1 v1t1)Rows(v1t1 v1t1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1000 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (v1t1.c1 = v1t1_1.c1)
- -> Seq Scan on t1 v1t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 v1t1_1 (cost=xxx rows=1000 width=xxx)
-(5 rows)
+ -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 v1t1_1 (cost=xxx..xxx rows=1000 width=xxx)
-- No. R-2-3-5
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 v1t1 (cost=xxx rows=1000 width=xxx)
- -> Index Scan using t1_i1 on t1 v1t1_ (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Scan using t1_i1 on t1 v1t1_ (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = v1t1.c1)
-(4 rows)
\o results/ut-R.tmpout
/*+NestLoop(v1t1 v1t1_)Rows(v1t1 v1t1_ #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
- -> Seq Scan on t1 v1t1 (cost=xxx rows=1000 width=xxx)
- -> Index Scan using t1_i1 on t1 v1t1_ (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on t1 v1t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Scan using t1_i1 on t1 v1t1_ (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = v1t1.c1)
-(4 rows)
-- No. R-2-3-6
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1000 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (r4t1.c1 = r4t1_1.c1)
- -> Seq Scan on t1 r4t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 r4t1_1 (cost=xxx rows=1000 width=xxx)
-(5 rows)
+ -> Seq Scan on t1 r4t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 r4t1_1 (cost=xxx..xxx rows=1000 width=xxx)
\o results/ut-R.tmpout
/*+RowsHashJoin(r4t1 r4t1)Rows(r4t1 r4t1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1000 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1000 width=xxx)
Hash Cond: (r4t1.c1 = r4t1_1.c1)
- -> Seq Scan on t1 r4t1 (cost=xxx rows=1000 width=xxx)
- -> Hash (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 r4t1_1 (cost=xxx rows=1000 width=xxx)
-(5 rows)
+ -> Seq Scan on t1 r4t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 r4t1_1 (cost=xxx..xxx rows=1000 width=xxx)
-- No. R-2-3-7
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
----------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1000 width=xxx)
- -> Seq Scan on t1 r4t1 (cost=xxx rows=1000 width=xxx)
- -> Index Scan using t1_i1 on t1 r5t1 (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1000 width=xxx)
+ -> Seq Scan on t1 r4t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Scan using t1_i1 on t1 r5t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = r4t1.c1)
-(4 rows)
\o results/ut-R.tmpout
/*+NestLoop(r4t1 r5t1)Rows(r4t1 r5t1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
----------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
- -> Seq Scan on t1 r4t1 (cost=xxx rows=1000 width=xxx)
- -> Index Scan using t1_i1 on t1 r5t1 (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on t1 r4t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Scan using t1_i1 on t1 r5t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = r4t1.c1)
-(4 rows)
----
---- No. R-2-4 VALUES clause
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=2 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
Hash Cond: (t2.c1 = "*VALUES*".column1)
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = t2.c1)
-(8 rows)
\o results/ut-R.tmpout
/*+ Leading(t3 t1 t2) Rows(t3 t1 #2)Rows(t3 t1 t2 #2)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
- -> Hash Join (cost=xxx rows=2 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
Hash Cond: (t2.c1 = "*VALUES*".column1)
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = t2.c1)
-(8 rows)
\o results/ut-R.tmpout
/*+ Leading(*VALUES* t1 t2) Rows(*VALUES* t1 #2)Rows(*VALUES* t1 t2 #20)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=20 width=xxx)
- -> Nested Loop (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=20 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = "*VALUES*".column1)
- -> Index Scan using t2_i1 on t2 (cost=xxx rows=1 width=xxx)
+ -> Index Scan using t2_i1 on t2 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = t1.c1)
-(7 rows)
-- No. R-2-4-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t2.c1 = "*VALUES*_1".column1)
- -> Hash Join (cost=xxx rows=2 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
Hash Cond: (t2.c1 = "*VALUES*".column1)
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx)
- -> Materialize (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
+ -> Materialize (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*_1" (cost=xxx..xxx rows=2 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = t2.c1)
-(12 rows)
\o results/ut-R.tmpout
/*+ Leading(t4 t3 t2 t1) Rows(t4 t3 #2) Rows(t4 t3 t2 #2)Rows(t4 t3 t2 t1 #2)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t2.c1 = "*VALUES*_1".column1)
- -> Hash Join (cost=xxx rows=2 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
Hash Cond: (t2.c1 = "*VALUES*".column1)
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx)
- -> Materialize (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
+ -> Materialize (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*_1" (cost=xxx..xxx rows=2 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = t2.c1)
-(12 rows)
\o results/ut-R.tmpout
/*+ Leading(*VALUES* t3 t2 t1) Rows(t4 t3 #2)Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
--------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=1 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=1 width=xxx)
Join Filter: (t2.c1 = "*VALUES*_1".column1)
- -> Hash Join (cost=xxx rows=2 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=2 width=xxx)
Hash Cond: (t2.c1 = "*VALUES*".column1)
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
- -> Hash (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx)
- -> Materialize (cost=xxx rows=2 width=xxx)
- -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Hash (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*" (cost=xxx..xxx rows=2 width=xxx)
+ -> Materialize (cost=xxx..xxx rows=2 width=xxx)
+ -> Values Scan on "*VALUES*_1" (cost=xxx..xxx rows=2 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = t2.c1)
-(12 rows)
----
---- No. R-2-5
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------------------------------
- Aggregate (cost=xxx rows=1 width=xxx)
- -> Nested Loop (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ Aggregate (cost=xxx..xxx rows=1 width=xxx)
+ -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Merge Join (cost=xxx rows=1000 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
Merge Cond: (bmt1.c1 = bmt3.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(13 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=70 width=xxx)
+ Merge Join (cost=xxx..xxx rows=70 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt2.c1)
- -> Hash Join (cost=xxx rows=1130 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
-(14 rows)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-2-5-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Merge Join (cost=xxx rows=1000 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
Merge Cond: (bmt1.c1 = bmt3.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(12 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=60 width=xxx)
+ Merge Join (cost=xxx..xxx rows=60 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=60 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=60 width=xxx)
Sort Key: bmt2.c1
- -> Hash Join (cost=xxx rows=60 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=60 width=xxx)
Hash Cond: (bmt3.c1 = bmt2.c1)
- -> Hash Join (cost=xxx rows=678 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=678 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
-(14 rows)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-2-5-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
------------------------------------------------------------------------------------------------
- Nested Loop (cost=xxx rows=100 width=xxx)
- -> Merge Join (cost=xxx rows=100 width=xxx)
+ Nested Loop (cost=xxx..xxx rows=100 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Merge Join (cost=xxx rows=1000 width=xxx)
+ -> Merge Join (cost=xxx..xxx rows=1000 width=xxx)
Merge Cond: (bmt1.c1 = bmt3.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
- -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx..xxx rows=1 width=xxx)
Index Cond: (c1 = bmt1.c1)
-(12 rows)
\o results/ut-R.tmpout
/*+
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-----------------------------------------------------------------------------------------
- Merge Join (cost=xxx rows=50 width=xxx)
+ Merge Join (cost=xxx..xxx rows=50 width=xxx)
Merge Cond: (bmt1.c1 = bmt2.c1)
- -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: bmt2.c1
- -> Hash Join (cost=xxx rows=100 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=100 width=xxx)
Hash Cond: (bmt3.c1 = bmt2.c1)
- -> Hash Join (cost=xxx rows=1130 width=xxx)
+ -> Hash Join (cost=xxx..xxx rows=1130 width=xxx)
Hash Cond: (bmt3.c1 = bmt4.c1)
- -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=1130 width=xxx)
- -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx)
- -> Hash (cost=xxx rows=100 width=xxx)
- -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx)
-(14 rows)
+ -> Seq Scan on t3 bmt3 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=1130 width=xxx)
+ -> Seq Scan on t4 bmt4 (cost=xxx..xxx rows=1130 width=xxx)
+ -> Hash (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on t2 bmt2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-3-1 abusolute value
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-1-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=5 width=xxx)
+ Merge Join (cost=xxx..xxx rows=5 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-3-2 increase or decrease value
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=101 width=xxx)
+ Merge Join (cost=xxx..xxx rows=101 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-2-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=99 width=xxx)
+ Merge Join (cost=xxx..xxx rows=99 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-2-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-3-3 multiple
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-3-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=200 width=xxx)
+ Merge Join (cost=xxx..xxx rows=200 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-3-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=10 width=xxx)
+ Merge Join (cost=xxx..xxx rows=10 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-3-4 join inherit tables
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------
- Hash Join (cost=xxx rows=301 width=xxx)
+ Hash Join (cost=xxx..xxx rows=301 width=xxx)
Hash Cond: (p2.c1 = p1.c1)
- -> Append (cost=xxx rows=304 width=xxx)
- -> Seq Scan on p2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c3 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c1c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c1c2 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c2c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c2c2 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c3c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c3c2 (cost=xxx rows=50 width=xxx)
- -> Hash (cost=xxx rows=301 width=xxx)
- -> Append (cost=xxx rows=301 width=xxx)
- -> Seq Scan on p1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p1c1 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c3 (cost=xxx rows=100 width=xxx)
-(19 rows)
+ -> Append (cost=xxx..xxx rows=304 width=xxx)
+ -> Seq Scan on p2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c3 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c1c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c1c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c2c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c2c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c3c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c3c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Hash (cost=xxx..xxx rows=301 width=xxx)
+ -> Append (cost=xxx..xxx rows=301 width=xxx)
+ -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p1c1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c3 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(p1 p2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------
- Hash Join (cost=xxx rows=1 width=xxx)
+ Hash Join (cost=xxx..xxx rows=1 width=xxx)
Hash Cond: (p2.c1 = p1.c1)
- -> Append (cost=xxx rows=304 width=xxx)
- -> Seq Scan on p2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c3 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c1c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c1c2 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c2c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c2c2 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c3c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c3c2 (cost=xxx rows=50 width=xxx)
- -> Hash (cost=xxx rows=301 width=xxx)
- -> Append (cost=xxx rows=301 width=xxx)
- -> Seq Scan on p1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p1c1 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c3 (cost=xxx rows=100 width=xxx)
-(19 rows)
+ -> Append (cost=xxx..xxx rows=304 width=xxx)
+ -> Seq Scan on p2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c3 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c1c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c1c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c2c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c2c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c3c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c3c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Hash (cost=xxx..xxx rows=301 width=xxx)
+ -> Append (cost=xxx..xxx rows=301 width=xxx)
+ -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p1c1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c3 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-4-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------
- Hash Join (cost=xxx rows=301 width=xxx)
+ Hash Join (cost=xxx..xxx rows=301 width=xxx)
Hash Cond: (p2.c1 = p1.c1)
- -> Append (cost=xxx rows=304 width=xxx)
- -> Seq Scan on p2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c3 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c1c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c1c2 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c2c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c2c2 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c3c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c3c2 (cost=xxx rows=50 width=xxx)
- -> Hash (cost=xxx rows=301 width=xxx)
- -> Append (cost=xxx rows=301 width=xxx)
- -> Seq Scan on p1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p1c1 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c3 (cost=xxx rows=100 width=xxx)
-(19 rows)
+ -> Append (cost=xxx..xxx rows=304 width=xxx)
+ -> Seq Scan on p2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c3 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c1c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c1c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c2c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c2c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c3c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c3c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Hash (cost=xxx..xxx rows=301 width=xxx)
+ -> Append (cost=xxx..xxx rows=301 width=xxx)
+ -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p1c1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c3 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(p1c1 p2c1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
-------------------------------------------------------------------------
- Hash Join (cost=xxx rows=301 width=xxx)
+ Hash Join (cost=xxx..xxx rows=301 width=xxx)
Hash Cond: (p2.c1 = p1.c1)
- -> Append (cost=xxx rows=304 width=xxx)
- -> Seq Scan on p2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c2 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c3 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p2c1c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c1c2 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c2c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c2c2 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c3c1 (cost=xxx rows=50 width=xxx)
- -> Seq Scan on p2c3c2 (cost=xxx rows=50 width=xxx)
- -> Hash (cost=xxx rows=301 width=xxx)
- -> Append (cost=xxx rows=301 width=xxx)
- -> Seq Scan on p1 (cost=xxx rows=1 width=xxx)
- -> Seq Scan on p1c1 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c2 (cost=xxx rows=100 width=xxx)
- -> Seq Scan on p1c3 (cost=xxx rows=100 width=xxx)
-(19 rows)
+ -> Append (cost=xxx..xxx rows=304 width=xxx)
+ -> Seq Scan on p2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c2 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c3 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p2c1c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c1c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c2c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c2c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c3c1 (cost=xxx..xxx rows=50 width=xxx)
+ -> Seq Scan on p2c3c2 (cost=xxx..xxx rows=50 width=xxx)
+ -> Hash (cost=xxx..xxx rows=301 width=xxx)
+ -> Append (cost=xxx..xxx rows=301 width=xxx)
+ -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx)
+ -> Seq Scan on p1c1 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c2 (cost=xxx..xxx rows=100 width=xxx)
+ -> Seq Scan on p1c3 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-3-5 conflict join method hint
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-5-2
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)Rows(t1 t2 #1)Rows(t1 t2 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-5-3
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 #1)Rows(t2 t1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
-- No. R-3-5-4
\o results/ut-R.tmpout
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t2 t1 #1)Rows(t1 t2 #1)Rows(t2 t1 #1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=1 width=xxx)
+ Merge Join (cost=xxx..xxx rows=1 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
----
---- No. R-3-6 hint state output
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=100 width=xxx)
+ Merge Join (cost=xxx..xxx rows=100 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\o results/ut-R.tmpout
/*+Rows(t1 t2 +1)*/
\! sql/maskout.sh results/ut-R.tmpout
QUERY PLAN
---------------------------------------------------------------------------
- Merge Join (cost=xxx rows=101 width=xxx)
+ Merge Join (cost=xxx..xxx rows=101 width=xxx)
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx)
- -> Sort (cost=xxx rows=100 width=xxx)
+ -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1000 width=xxx)
+ -> Sort (cost=xxx..xxx rows=100 width=xxx)
Sort Key: t2.c1
- -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
-(6 rows)
+ -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
\! rm results/ut-R.tmpout