OSDN Git Service

Merge branch 'master' into ut
[pghintplan/pg_hint_plan.git] / sql / ut-S.sql
1 LOAD 'pg_hint_plan';
2 SET pg_hint_plan.enable TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
6
7 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
8 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
9 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
10 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
11
12 ----
13 ---- No. S-1-1 specified pattern of the object name
14 ----
15
16 -- No. S-1-1-1
17 /*+SeqScan(t1)*/
18 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
19
20 -- No. S-1-1-2
21 /*+SeqScan(t1)*/
22 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1 WHERE t_1.c1 = 1;
23
24 -- No. S-1-1-3
25 /*+SeqScan(t_1)*/
26 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1 WHERE t_1.c1 = 1;
27
28 ----
29 ---- No. S-1-2 specified schema name in the hint option
30 ----
31
32 -- No. S-1-2-1
33 /*+SeqScan(t1)*/
34 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
35
36 -- No. S-1-2-2
37 /*+SeqScan(s1.t1)*/
38 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
39
40 ----
41 ---- No. S-1-3 table doesn't exist in the hint option
42 ----
43
44 -- No. S-1-3-1
45 /*+SeqScan(t1)*/
46 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
47
48 -- No. S-1-3-2
49 /*+SeqScan(t2)*/
50 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
51
52 ----
53 ---- No. S-1-4 conflict table name
54 ----
55
56 -- No. S-1-4-1
57 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = 1 AND t1.c1 = t2.c1;
58 /*+SeqScan(t1)*/
59 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = 1 AND t1.c1 = t2.c1;
60
61 -- No. S-1-4-2
62 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = 1 AND s1.t1.c1 = s2.t1.c1;
63 /*+IndexScan(t1)*/
64 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = 1 AND s1.t1.c1 = s2.t1.c1;
65
66 /*+SeqScan(t1)*/
67 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = 1 AND s1.t1.c1 = s2t1.c1;
68 /*+BitmapScan(s2t1)*/
69 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = 1 AND s1.t1.c1 = s2t1.c1;
70
71 -- No. S-1-4-3
72 EXPLAIN (COSTS false) SELECT (SELECT max(c1) FROM s1.t1 WHERE s1.t1.c1 = 1) FROM s1.t1 WHERE s1.t1.c1 = 1;
73 /*+SeqScan(t1)*/
74 EXPLAIN (COSTS false) SELECT (SELECT max(c1) FROM s1.t1 WHERE s1.t1.c1 = 1) FROM s1.t1 WHERE s1.t1.c1 = 1;
75
76 /*+SeqScan(t11)*/
77 EXPLAIN (COSTS false) SELECT (SELECT max(c1) FROM s1.t1 t11 WHERE t11.c1 = 1) FROM s1.t1 t12 WHERE t12.c1 = 1;
78 /*+SeqScan(t12)*/
79 EXPLAIN (COSTS false) SELECT (SELECT max(c1) FROM s1.t1 t11 WHERE t11.c1 = 1) FROM s1.t1 t12 WHERE t12.c1 = 1;
80
81 ----
82 ---- No. S-1-5 object type for the hint
83 ----
84
85 -- No. S-1-5-1
86 /*+SeqScan(t1)*/
87 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
88
89 -- No. S-1-5-2
90 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE p1.c1 = 1;
91 /*+IndexScan(p1)*/
92 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE p1.c1 = 1;
93
94 -- No. S-1-5-3
95 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 WHERE ul1.c1 = 1;
96 /*+SeqScan(ul1)*/
97 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 WHERE ul1.c1 = 1;
98
99 -- No. S-1-5-4
100 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
101 EXPLAIN (COSTS false) SELECT * FROM tm1 WHERE tm1.c1 = 1;
102 /*+SeqScan(tm1)*/
103 EXPLAIN (COSTS false) SELECT * FROM tm1 WHERE tm1.c1 = 1;
104
105 -- No. S-1-5-5
106 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class WHERE oid = 1;
107 /*+SeqScan(pg_class)*/
108 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class WHERE oid = 1;
109
110 -- No. S-1-5-6
111 -- refer fdw.sql
112
113 -- No. S-1-5-7
114 EXPLAIN (COSTS false) SELECT * FROM s1.f1() AS ft1 WHERE ft1.c1 = 1;
115 /*+SeqScan(ft1)*/
116 EXPLAIN (COSTS false) SELECT * FROM s1.f1() AS ft1 WHERE ft1.c1 = 1;
117
118 -- No. S-1-5-8
119 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS val1 (c1, c2, c3, c4) WHERE val1.c1 = 1;
120 /*+SeqScan(val1)*/
121 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS val1 (c1, c2, c3, c4) WHERE val1.c1 = 1;
122 /*+SeqScan(*VALUES*)*/
123 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS val1 (c1, c2, c3, c4) WHERE val1.c1 = 1;
124
125 -- No. S-1-5-9
126 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(c1) FROM s1.t1 WHERE t1.c1 = 1)
127 SELECT * FROM s1.t1, c1 WHERE t1.c1 = 1 AND t1.c1 = c1.c1;
128 /*+SeqScan(c1)*/
129 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(c1) FROM s1.t1 WHERE t1.c1 = 1)
130 SELECT * FROM s1.t1, c1 WHERE t1.c1 = 1 AND t1.c1 = c1.c1;
131
132 -- No. S-1-5-10
133 EXPLAIN (COSTS false) SELECT * FROM s1.v1 WHERE v1.c1 = 1;
134 /*+SeqScan(v1)*/
135 EXPLAIN (COSTS false) SELECT * FROM s1.v1 WHERE v1.c1 = 1;
136
137 -- No. S-1-5-11
138 EXPLAIN (COSTS false) SELECT * FROM (SELECT * FROM s1.t1 WHERE t1.c1 = 1) AS s1 WHERE s1.c1 = 1;
139 /*+SeqScan(s1)*/
140 EXPLAIN (COSTS false) SELECT * FROM (SELECT * FROM s1.t1 WHERE t1.c1 = 1) AS s1 WHERE s1.c1 = 1;
141
142 ----
143 ---- No. S-3-1 scan method hint
144 ----
145
146 -- No. S-3-1-1
147 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
148 /*+SeqScan(t1)*/
149 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
150
151 -- No. S-3-1-2
152 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
153 /*+SeqScan(t1)*/
154 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
155
156 -- No. S-3-1-3
157 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
158 /*+IndexScan(t1)*/
159 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
160
161 -- No. S-3-1-4
162 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
163 /*+IndexScan(t1)*/
164 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
165
166 -- No. S-3-1-5
167 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
168 /*+BitmapScan(t1)*/
169 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
170
171 -- No. S-3-1-6
172 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
173 /*+BitmapScan(t1)*/
174 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
175
176 -- No. S-3-1-7
177 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
178 /*+TidScan(t1)*/
179 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
180
181 -- No. S-3-1-8
182 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid IN ('(1,1)', '(2,2)', '(3,3)');
183 /*+TidScan(t1)*/
184 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid IN ('(1,1)', '(2,2)', '(3,3)');
185
186 -- No. S-3-1-9
187 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
188 /*+NoSeqScan(t1)*/
189 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
190
191 -- No. S-3-1-10
192 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
193 /*+NoSeqScan(t1)*/
194 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
195
196 -- No. S-3-1-11
197 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
198 /*+NoIndexScan(t1)*/
199 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
200
201 -- No. S-3-1-12
202 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
203 /*+NoIndexScan(t1)*/
204 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
205
206 -- No. S-3-1-13
207 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
208 /*+NoBitmapScan(t1)*/
209 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
210
211 -- No. S-3-1-14
212 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
213 /*+NoBitmapScan(t1)*/
214 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
215
216 -- No. S-3-1-15
217 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
218 /*+NoTidScan(t1)*/
219 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
220
221 -- No. S-3-1-16
222 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
223 /*+NoTidScan(t1)*/
224 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
225