OSDN Git Service

Rowsヒント句の継承テーブル関連(R-3-4-*)の試験を追加した。
authorTakashi Suzuki <suzuki.takashi@metrosystems.co.jp>
Fri, 17 Jan 2014 01:27:22 +0000 (10:27 +0900)
committerTakashi Suzuki <suzuki.takashi@metrosystems.co.jp>
Fri, 17 Jan 2014 01:27:22 +0000 (10:27 +0900)
expected/R_3-3-1.out [new file with mode: 0644]
expected/R_3-3-2.out [new file with mode: 0644]
expected/R_3-3-3.out [new file with mode: 0644]
expected/R_3-4-1.out [new file with mode: 0644]
expected/R_3-4-2.out [new file with mode: 0644]
expected/ut-R.out
sql/ut-R.sql

diff --git a/expected/R_3-3-1.out b/expected/R_3-3-1.out
new file mode 100644 (file)
index 0000000..36073c1
--- /dev/null
@@ -0,0 +1,10 @@
+                                QUERY PLAN                                 
+---------------------------------------------------------------------------
+ Merge Join  (cost=xxx rows=1 width=29)
+   Merge Cond: (t1.c1 = t2.c1)
+   ->  Index Scan using t1_i1 on t1  (cost=xxx rows=1000 width=15)
+   ->  Sort  (cost=xxx rows=100 width=14)
+         Sort Key: t2.c1
+         ->  Seq Scan on t2  (cost=xxx rows=100 width=14)
+(6 rows)
+
diff --git a/expected/R_3-3-2.out b/expected/R_3-3-2.out
new file mode 100644 (file)
index 0000000..1a52d8d
--- /dev/null
@@ -0,0 +1,10 @@
+                                QUERY PLAN                                 
+---------------------------------------------------------------------------
+ Merge Join  (cost=xxx rows=200 width=29)
+   Merge Cond: (t1.c1 = t2.c1)
+   ->  Index Scan using t1_i1 on t1  (cost=xxx rows=1000 width=15)
+   ->  Sort  (cost=xxx rows=100 width=14)
+         Sort Key: t2.c1
+         ->  Seq Scan on t2  (cost=xxx rows=100 width=14)
+(6 rows)
+
diff --git a/expected/R_3-3-3.out b/expected/R_3-3-3.out
new file mode 100644 (file)
index 0000000..616f070
--- /dev/null
@@ -0,0 +1,10 @@
+                                QUERY PLAN                                 
+---------------------------------------------------------------------------
+ Merge Join  (cost=xxx rows=10 width=29)
+   Merge Cond: (t1.c1 = t2.c1)
+   ->  Index Scan using t1_i1 on t1  (cost=xxx rows=1000 width=15)
+   ->  Sort  (cost=xxx rows=100 width=14)
+         Sort Key: t2.c1
+         ->  Seq Scan on t2  (cost=xxx rows=100 width=14)
+(6 rows)
+
diff --git a/expected/R_3-4-1.out b/expected/R_3-4-1.out
new file mode 100644 (file)
index 0000000..dee42fe
--- /dev/null
@@ -0,0 +1,46 @@
+                               QUERY PLAN                                
+-------------------------------------------------------------------------
+ Hash Join  (cost=xxx rows=301 width=31)
+   Hash Cond: (p2.c1 = p1.c1)
+   ->  Append  (cost=xxx rows=304 width=16)
+         ->  Seq Scan on p2  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c1  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c2  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c3  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c1c1  (cost=xxx rows=50 width=14)
+         ->  Seq Scan on p2c1c2  (cost=xxx rows=50 width=15)
+         ->  Seq Scan on p2c2c1  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c2c2  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c3c1  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c3c2  (cost=xxx rows=50 width=16)
+   ->  Hash  (cost=xxx rows=301 width=15)
+         ->  Append  (cost=xxx rows=301 width=15)
+               ->  Seq Scan on p1  (cost=xxx rows=1 width=44)
+               ->  Seq Scan on p1c1  (cost=xxx rows=100 width=14)
+               ->  Seq Scan on p1c2  (cost=xxx rows=100 width=16)
+               ->  Seq Scan on p1c3  (cost=xxx rows=100 width=16)
+(19 rows)
+
+                               QUERY PLAN                                
+-------------------------------------------------------------------------
+ Hash Join  (cost=xxx rows=1 width=31)
+   Hash Cond: (p2.c1 = p1.c1)
+   ->  Append  (cost=xxx rows=304 width=16)
+         ->  Seq Scan on p2  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c1  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c2  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c3  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c1c1  (cost=xxx rows=50 width=14)
+         ->  Seq Scan on p2c1c2  (cost=xxx rows=50 width=15)
+         ->  Seq Scan on p2c2c1  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c2c2  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c3c1  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c3c2  (cost=xxx rows=50 width=16)
+   ->  Hash  (cost=xxx rows=301 width=15)
+         ->  Append  (cost=xxx rows=301 width=15)
+               ->  Seq Scan on p1  (cost=xxx rows=1 width=44)
+               ->  Seq Scan on p1c1  (cost=xxx rows=100 width=14)
+               ->  Seq Scan on p1c2  (cost=xxx rows=100 width=16)
+               ->  Seq Scan on p1c3  (cost=xxx rows=100 width=16)
+(19 rows)
+
diff --git a/expected/R_3-4-2.out b/expected/R_3-4-2.out
new file mode 100644 (file)
index 0000000..506b7dc
--- /dev/null
@@ -0,0 +1,46 @@
+                               QUERY PLAN                                
+-------------------------------------------------------------------------
+ Hash Join  (cost=xxx rows=301 width=31)
+   Hash Cond: (p2.c1 = p1.c1)
+   ->  Append  (cost=xxx rows=304 width=16)
+         ->  Seq Scan on p2  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c1  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c2  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c3  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c1c1  (cost=xxx rows=50 width=14)
+         ->  Seq Scan on p2c1c2  (cost=xxx rows=50 width=15)
+         ->  Seq Scan on p2c2c1  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c2c2  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c3c1  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c3c2  (cost=xxx rows=50 width=16)
+   ->  Hash  (cost=xxx rows=301 width=15)
+         ->  Append  (cost=xxx rows=301 width=15)
+               ->  Seq Scan on p1  (cost=xxx rows=1 width=44)
+               ->  Seq Scan on p1c1  (cost=xxx rows=100 width=14)
+               ->  Seq Scan on p1c2  (cost=xxx rows=100 width=16)
+               ->  Seq Scan on p1c3  (cost=xxx rows=100 width=16)
+(19 rows)
+
+                               QUERY PLAN                                
+-------------------------------------------------------------------------
+ Hash Join  (cost=xxx rows=301 width=31)
+   Hash Cond: (p2.c1 = p1.c1)
+   ->  Append  (cost=xxx rows=304 width=16)
+         ->  Seq Scan on p2  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c1  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c2  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c3  (cost=xxx rows=1 width=44)
+         ->  Seq Scan on p2c1c1  (cost=xxx rows=50 width=14)
+         ->  Seq Scan on p2c1c2  (cost=xxx rows=50 width=15)
+         ->  Seq Scan on p2c2c1  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c2c2  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c3c1  (cost=xxx rows=50 width=16)
+         ->  Seq Scan on p2c3c2  (cost=xxx rows=50 width=16)
+   ->  Hash  (cost=xxx rows=301 width=15)
+         ->  Append  (cost=xxx rows=301 width=15)
+               ->  Seq Scan on p1  (cost=xxx rows=1 width=44)
+               ->  Seq Scan on p1c1  (cost=xxx rows=100 width=14)
+               ->  Seq Scan on p1c2  (cost=xxx rows=100 width=16)
+               ->  Seq Scan on p1c3  (cost=xxx rows=100 width=16)
+(19 rows)
+
index a068632..8338a88 100644 (file)
@@ -2299,3 +2299,36 @@ error hint:
 \o
 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-3-3.out.log > results/R_3-3-3.out
 \! diff expected/R_3-3-3.out results/R_3-3-3.out
+----
+---- No. R-3-4 join inherit tables
+----
+-- No. R-3-4-1
+\o results/R_3-4-1.out.log
+EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
+/*+Rows(p1 p2 #1)*/
+EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
+LOG:  pg_hint_plan:
+used hint:
+Rows(p1 p2 #1)
+not used hint:
+duplication hint:
+error hint:
+
+\o
+\! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-4-1.out.log > results/R_3-4-1.out
+\! diff expected/R_3-4-1.out results/R_3-4-1.out
+-- No. R-3-4-2
+\o results/R_3-4-2.out.log
+EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
+/*+Rows(p1c1 p2c1 #1)*/
+EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
+LOG:  pg_hint_plan:
+used hint:
+not used hint:
+Rows(p1c1 p2c1 #1)
+duplication hint:
+error hint:
+
+\o
+\! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-4-2.out.log > results/R_3-4-2.out
+\! diff expected/R_3-4-2.out results/R_3-4-2.out
index 97805a5..62c7f4b 100644 (file)
@@ -1156,3 +1156,25 @@ EXPLAIN SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
 \! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-3-3.out.log > results/R_3-3-3.out
 \! diff expected/R_3-3-3.out results/R_3-3-3.out
 
+----
+---- No. R-3-4 join inherit tables
+----
+
+-- No. R-3-4-1
+\o results/R_3-4-1.out.log
+EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
+/*+Rows(p1 p2 #1)*/
+EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
+\o
+\! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-4-1.out.log > results/R_3-4-1.out
+\! diff expected/R_3-4-1.out results/R_3-4-1.out
+
+-- No. R-3-4-2
+\o results/R_3-4-2.out.log
+EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
+/*+Rows(p1c1 p2c1 #1)*/
+EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
+\o
+\! sed 's/cost=[\.0-9]*/cost=xxx/' results/R_3-4-2.out.log > results/R_3-4-2.out
+\! diff expected/R_3-4-2.out results/R_3-4-2.out
+