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 /*+BitmapScan(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 /*+BitmapScan(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 /*+BitmapScan(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 /*+BitmapScan(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 /*+BitmapScan(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
226 ----
227 ---- No. S-3-3 index name specified
228 ----
229
230 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
231 SET enable_tidscan TO off;
232 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
233 SET enable_indexscan TO off;
234 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
235 RESET enable_tidscan;
236 RESET enable_indexscan;
237
238 -- No. S-3-3-1
239 /*+IndexScan(ti1 ti1_i3)*/
240 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
241
242 -- No. S-3-3-2
243 /*+IndexScan(ti1 ti1_i3 ti1_i2)*/
244 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
245
246 -- No. S-3-3-3
247 /*+IndexScan(ti1 ti1_i4 ti1_i3 ti1_i2 ti1_i1)*/
248 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
249
250 -- No. S-3-3-4
251 /*+BitmapScan(ti1 ti1_i3)*/
252 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
253
254 -- No. S-3-3-5
255 /*+BitmapScan(ti1 ti1_i3 ti1_i2)*/
256 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
257
258 -- No. S-3-3-6
259 /*+BitmapScan(ti1 ti1_i4 ti1_i3 ti1_i2 ti1_i1)*/
260 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
261
262 ----
263 ---- No. S-3-4 index type
264 ----
265
266 \d s1.ti1
267 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
268
269 -- No. S-3-4-1
270 /*+IndexScan(ti1 ti1_btree)*/
271 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
272
273 -- No. S-3-4-2
274 /*+IndexScan(ti1 ti1_hash)*/
275 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
276
277 -- No. S-3-4-3
278 /*+IndexScan(ti1 ti1_gist)*/
279 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
280
281 -- No. S-3-4-4
282 /*+IndexScan(ti1 ti1_gin)*/
283 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
284
285 -- No. S-3-4-5
286 /*+IndexScan(ti1 ti1_expr)*/
287 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
288
289 -- No. S-3-4-6
290 /*+IndexScan(ti1 ti1_pred)*/
291 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
292
293 -- No. S-3-4-7
294 /*+IndexScan(ti1 ti1_uniq)*/
295 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
296
297 -- No. S-3-4-8
298 /*+IndexScan(ti1 ti1_multi)*/
299 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
300
301 -- No. S-3-4-9
302 /*+IndexScan(ti1 ti1_ts)*/
303 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
304
305 -- No. S-3-4-10
306 /*+IndexScan(ti1 ti1_pkey)*/
307 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
308
309 -- No. S-3-4-11
310 /*+IndexScan(ti1 ti1_c2_key)*/
311 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
312
313 -- No. S-3-4-12
314 /*+BitmapScan(ti1 ti1_btree)*/
315 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
316
317 -- No. S-3-4-13
318 /*+BitmapScan(ti1 ti1_hash)*/
319 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
320
321 -- No. S-3-4-14
322 /*+BitmapScan(ti1 ti1_gist)*/
323 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
324
325 -- No. S-3-4-15
326 /*+BitmapScan(ti1 ti1_gin)*/
327 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
328
329 -- No. S-3-4-16
330 /*+BitmapScan(ti1 ti1_expr)*/
331 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
332
333 -- No. S-3-4-17
334 /*+BitmapScan(ti1 ti1_pred)*/
335 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
336
337 -- No. S-3-4-18
338 /*+BitmapScan(ti1 ti1_uniq)*/
339 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
340
341 -- No. S-3-4-19
342 /*+BitmapScan(ti1 ti1_multi)*/
343 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
344
345 -- No. S-3-4-20
346 /*+BitmapScan(ti1 ti1_ts)*/
347 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
348
349 -- No. S-3-4-10
350 /*+BitmapScan(ti1 ti1_pkey)*/
351 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
352
353 -- No. S-3-4-11
354 /*+BitmapScan(ti1 ti1_c2_key)*/
355 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)';
356
357 ----
358 ---- No. S-3-5 not used index
359 ----
360
361 -- No. S-3-5-1
362 /*+IndexScan(ti1 ti1_pred)*/
363 EXPLAIN (COSTS true) SELECT * FROM s1.ti1 WHERE c1 = 100;
364
365 -- No. S-3-5-2
366 /*+BitmapScan(ti1 ti1_pred)*/
367 EXPLAIN (COSTS true) SELECT * FROM s1.ti1 WHERE c1 = 100;
368
369 ----
370 ---- No. S-3-6 not exist index
371 ----
372
373 -- No. S-3-6-1
374 /*+IndexScan(ti1 not_exist)*/
375 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 100;
376
377 -- No. S-3-6-2
378 /*+BitmapScan(ti1 not_exist)*/
379 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 100;
380
381 ----
382 ---- No. S-3-7 query structure
383 ----
384
385 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';
386
387 -- No. S-3-7-1
388 /*+SeqScan(t1)*/
389 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE c1 = 100;
390
391 -- No. S-3-7-2
392 /*+SeqScan(t1)BitmapScan(t2)*/
393 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';
394
395 -- No. S-3-7-3
396 /*+SeqScan(t1)*/
397 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';
398
399 ----
400 ---- No. S-3-8 query structure
401 ----
402
403 -- No. S-3-8-1
404 EXPLAIN (COSTS false) 
405 WITH c1 (c1) AS (
406 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.c1 = 1)
407 SELECT max(b3t1.c1), (
408 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
409                   ) FROM s1.t1 b3t1 WHERE b3t1.c1 = (
410 SELECT max(b4t1.c1) FROM s1.t1 b4t1 WHERE b4t1.c1 = 1);
411 /*+BitmapScan(b1t1)BitmapScan(b2t1)BitmapScan(b3t1)BitmapScan(b4t1)*/
412 EXPLAIN (COSTS false) 
413 WITH c1 (c1) AS (
414 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.c1 = 1)
415 SELECT max(b3t1.c1), (
416 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
417                   ) FROM s1.t1 b3t1 WHERE b3t1.c1 = (
418 SELECT max(b4t1.c1) FROM s1.t1 b4t1 WHERE b4t1.c1 = 1);
419
420 -- No. S-3-8-2
421 EXPLAIN (COSTS false) 
422 WITH cte1 (c1) AS (
423 SELECT max(b1t1.c1) FROM s1.t1 b1t1 JOIN s1.t2 b1t2 ON(b1t1.c1 = b1t2.c1) WHERE b1t1.c1 = 1)
424 SELECT max(b3t1.c1), (
425 SELECT max(b2t1.c1) FROM s1.t1 b2t1 JOIN s1.t2 b2t2 ON(b2t1.c1 = b2t2.c1) WHERE b2t1.c1 = 1
426                   ) FROM s1.t1 b3t1 JOIN s1.t2 b3t2 ON(b3t1.c1 = b3t2.c1) JOIN cte1 ON(b3t1.c1 = cte1.c1) WHERE b3t1.c1 = (
427 SELECT max(b4t1.c1) FROM s1.t1 b4t1 JOIN s1.t2 b4t2 ON(b4t1.c1 = b4t2.c1) WHERE b4t1.c1 = 1);
428 /*+BitmapScan(b1t1)BitmapScan(b2t1)BitmapScan(b3t1)BitmapScan(b4t1)BitmapScan(b1t2)BitmapScan(b2t2)BitmapScan(b3t2)BitmapScan(b4t2)*/
429 EXPLAIN (COSTS false) 
430 WITH cte1 (c1) AS (
431 SELECT max(b1t1.c1) FROM s1.t1 b1t1 JOIN s1.t2 b1t2 ON(b1t1.c1 = b1t2.c1) WHERE b1t1.c1 = 1)
432 SELECT max(b3t1.c1), (
433 SELECT max(b2t1.c1) FROM s1.t1 b2t1 JOIN s1.t2 b2t2 ON(b2t1.c1 = b2t2.c1) WHERE b2t1.c1 = 1
434                   ) FROM s1.t1 b3t1 JOIN s1.t2 b3t2 ON(b3t1.c1 = b3t2.c1) JOIN cte1 ON(b3t1.c1 = cte1.c1) WHERE b3t1.c1 = (
435 SELECT max(b4t1.c1) FROM s1.t1 b4t1 JOIN s1.t2 b4t2 ON(b4t1.c1 = b4t2.c1) WHERE b4t1.c1 = 1);
436
437 -- No. S-3-8-3
438 EXPLAIN (COSTS false) 
439 WITH cte1 (c1) AS (
440 SELECT max(b1t1.c1) FROM s1.t1 b1t1 JOIN s1.t2 b1t2 ON(b1t1.c1 = b1t2.c1) WHERE b1t1.c1 = 1)
441 SELECT max(b3t1.c1), (
442 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
443                   ) FROM s1.t1 b3t1 JOIN s1.t2 b3t2 ON(b3t1.c1 = b3t2.c1) JOIN cte1 ON(b3t1.c1 = cte1.c1) WHERE b3t1.c1 = (
444 SELECT max(b4t1.c1) FROM s1.t1 b4t1 WHERE b4t1.c1 = 1);
445 /*+BitmapScan(b1t1)BitmapScan(b2t1)BitmapScan(b3t1)BitmapScan(b4t1)BitmapScan(b1t2)BitmapScan(b3t2)*/
446 EXPLAIN (COSTS false) 
447 WITH cte1 (c1) AS (
448 SELECT max(b1t1.c1) FROM s1.t1 b1t1 JOIN s1.t2 b1t2 ON(b1t1.c1 = b1t2.c1) WHERE b1t1.c1 = 1)
449 SELECT max(b3t1.c1), (
450 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
451                   ) FROM s1.t1 b3t1 JOIN s1.t2 b3t2 ON(b3t1.c1 = b3t2.c1) JOIN cte1 ON(b3t1.c1 = cte1.c1) WHERE b3t1.c1 = (
452 SELECT max(b4t1.c1) FROM s1.t1 b4t1 WHERE b4t1.c1 = 1);
453
454 ----
455 ---- No. S-3-9 inheritance table select type
456 ----
457
458 -- No. S-3-9-1
459 EXPLAIN (COSTS false) SELECT * FROM ONLY s1.p1 WHERE c1 = 1;
460 /*+IndexScan(p1)*/
461 EXPLAIN (COSTS false) SELECT * FROM ONLY s1.p1 WHERE c1 = 1;
462
463 -- No. S-3-9-2
464 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1;
465 /*+IndexScan(p1)*/
466 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1;
467
468 ----
469 ---- No. S-3-10 inheritance table number
470 ----
471
472 -- No. S-3-10-1
473 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1;
474 /*+IndexScan(p1)*/
475 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1;
476
477 -- No. S-3-10-2
478 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
479 /*+IndexScan(p2)*/
480 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
481
482 ----
483 ---- No. S-3-11 inheritance table specified table
484 ----
485
486 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
487
488 -- No. S-3-11-1
489 /*+IndexScan(p2)*/
490 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
491
492 -- No. S-3-11-2
493 /*+IndexScan(p2c1)*/
494 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
495
496 -- No. S-3-11-3
497 /*+IndexScan(p2 p2_pkey p2c1_pkey p2c1c1_pkey)*/
498 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
499
500 -- No. S-3-11-4
501 /*+IndexScan(p2 p2c1_pkey)*/
502 EXPLAIN (COSTS true) SELECT * FROM s1.p2 WHERE c1 = 1;
503
504 ----
505 ---- No. S-3-12 specified same table
506 ----
507
508 -- No. S-3-12-1
509 /*+IndexScan(ti1) BitmapScan(ti1)*/
510 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
511
512 -- No. S-3-12-2
513 /*+IndexScan(ti1 ti1_pkey) BitmapScan(ti1 ti1_btree)*/
514 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
515
516 -- No. S-3-12-3
517 /*+BitmapScan(ti1) IndexScan(ti1) BitmapScan(ti1)*/
518 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
519
520 -- No. S-3-12-4
521 /*+BitmapScan(ti1 ti1_hash) IndexScan(ti1 ti1_pkey) BitmapScan(ti1 ti1_btree)*/
522 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
523
524 ----
525 ---- No. S-3-13 message output
526 ----
527
528 -- No. S-3-13-1
529 /*+SeqScan(ti1)*/
530 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
531
532 -- No. S-3-13-2
533 /*+SeqScan(ti1 ti1_pkey)*/
534 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
535
536 -- No. S-3-13-3
537 /*+SeqScan(ti1 ti1_pkey ti1_btree)*/
538 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
539
540 -- No. S-3-13-4
541 /*+IndexScan(ti1)*/
542 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
543
544 -- No. S-3-13-5
545 /*+IndexScan(ti1 ti1_pkey)*/
546 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
547
548 -- No. S-3-13-6
549 /*+IndexScan(ti1 ti1_pkey ti1_btree)*/
550 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
551
552 -- No. S-3-13-7
553 /*+BitmapScan(ti1)*/
554 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
555
556 -- No. S-3-13-8
557 /*+BitmapScan(ti1 ti1_pkey)*/
558 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
559
560 -- No. S-3-13-9
561 /*+BitmapScan(ti1 ti1_pkey ti1_btree)*/
562 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
563
564 -- No. S-3-13-10
565 /*+TidScan(ti1)*/
566 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
567
568 -- No. S-3-13-11
569 /*+TidScan(ti1 ti1_pkey)*/
570 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
571
572 -- No. S-3-13-12
573 /*+TidScan(ti1 ti1_pkey ti1_btree)*/
574 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
575
576 -- No. S-3-13-13
577 /*+NoSeqScan(ti1)*/
578 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
579
580 -- No. S-3-13-14
581 /*+NoSeqScan(ti1 ti1_pkey)*/
582 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
583
584 -- No. S-3-13-15
585 /*+NoSeqScan(ti1 ti1_pkey ti1_btree)*/
586 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
587
588 -- No. S-3-13-16
589 /*+NoIndexScan(ti1)*/
590 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
591
592 -- No. S-3-13-17
593 /*+NoIndexScan(ti1 ti1_pkey)*/
594 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
595
596 -- No. S-3-13-18
597 /*+NoIndexScan(ti1 ti1_pkey ti1_btree)*/
598 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
599
600 -- No. S-3-13-19
601 /*+NoBitmapScan(ti1)*/
602 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
603
604 -- No. S-3-13-20
605 /*+NoBitmapScan(ti1 ti1_pkey)*/
606 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
607
608 -- No. S-3-13-21
609 /*+NoBitmapScan(ti1 ti1_pkey ti1_btree)*/
610 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
611
612 -- No. S-3-13-22
613 /*+NoTidScan(ti1)*/
614 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
615
616 -- No. S-3-13-23
617 /*+NoTidScan(ti1 ti1_pkey)*/
618 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
619
620 -- No. S-3-13-24
621 /*+NoTidScan(ti1 ti1_pkey ti1_btree)*/
622 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
623