OSDN Git Service

pg_hint_plan_first
[pghintplan/pg_hint_plan.git] / sql / ut-S.sql
1 LOAD 'pg_hint_plan';
2 SET pg_hint_plan.enable_hint TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
6
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 ut-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-2-1 complexity query block
144 ----
145
146 -- No. S-2-1-1
147 EXPLAIN (COSTS false)
148 SELECT max(bmt1.c1), (
149 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
150 )
151                     FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
152 ;
153 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
154 TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
155 */
156 EXPLAIN (COSTS false)
157 SELECT max(bmt1.c1), (
158 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
159 )
160                     FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
161 ;
162
163 -- No. S-2-1-2
164 EXPLAIN (COSTS false)
165 SELECT max(bmt1.c1), (
166 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
167 ), (
168 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
169 )
170                     FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
171 ;
172 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
173 TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
174 BitmapScan(b2t1 t1_pkey)TidScan(b2t2)SeqScan(b2t3)IndexScan(b2t4 t4_pkey)
175 */
176 EXPLAIN (COSTS false)
177 SELECT max(bmt1.c1), (
178 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
179 ), (
180 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
181 )
182                     FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
183 ;
184
185 -- No. S-2-1-3
186 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, (SELECT * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = sbmt4.c1;
187 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
188 */
189 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, (SELECT * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = sbmt4.c1;
190
191 -- No. S-2-1-4
192 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT * FROM s1.t3 bmt3) sbmt3, (SELECT * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
193 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
194 */
195 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT * FROM s1.t3 bmt3) sbmt3, (SELECT * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = sbmt3.c1 AND bmt1.c1 = sbmt4.c1;
196
197 -- No. S-2-1-5
198 EXPLAIN (COSTS false)
199 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
200   AND bmt1.c1 <> (
201 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
202 )
203 ;
204 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
205 TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
206 */
207 EXPLAIN (COSTS false)
208 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
209   AND bmt1.c1 <> (
210 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
211 )
212 ;
213
214 -- No. S-2-1-6
215 EXPLAIN (COSTS false)
216 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
217   AND bmt1.c1 <> (
218 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
219 ) AND bmt1.c1 <> (
220 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
221 )
222 ;
223 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
224 TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
225 BitmapScan(b2t1 t1_pkey)TidScan(b2t2)SeqScan(b2t3)IndexScan(b2t4 t4_pkey)
226 */
227 EXPLAIN (COSTS false)
228 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
229   AND bmt1.c1 <> (
230 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
231 ) AND bmt1.c1 <> (
232 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
233 )
234 ;
235
236 -- No. S-2-1-7
237 EXPLAIN (COSTS false)
238 WITH c1 (c1) AS (
239 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
240 )
241 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
242 , c1
243                                                                         WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
244 AND bmt1.c1 = c1.c1
245 ;
246 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
247 TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
248 */
249 EXPLAIN (COSTS false)
250 WITH c1 (c1) AS (
251 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
252 )
253 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
254 , c1
255                                                                         WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
256 AND bmt1.c1 = c1.c1
257 ;
258
259 -- No. S-2-1-8
260 EXPLAIN (COSTS false)
261 WITH c1 (c1) AS (
262 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
263 )
264 , c2 (c1) AS (
265 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
266 )
267 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
268 , c1, c2
269                                                                         WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
270 AND bmt1.c1 = c1.c1
271 AND bmt1.c1 = c2.c1
272 ;
273 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
274 TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
275 BitmapScan(b2t1 t1_pkey)TidScan(b2t2)SeqScan(b2t3)IndexScan(b2t4 t4_pkey)
276 */
277 EXPLAIN (COSTS false)
278 WITH c1 (c1) AS (
279 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.c1 = b1t2.c1 AND b1t1.c1 = b1t3.c1 AND b1t1.c1 = b1t4.c1
280 )
281 , c2 (c1) AS (
282 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.c1 = b2t2.c1 AND b2t1.c1 = b2t3.c1 AND b2t1.c1 = b2t4.c1
283 )
284 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
285 , c1, c2
286                                                                         WHERE bmt1.c1 = bmt2.c1 AND bmt1.c1 = bmt3.c1 AND bmt1.c1 = bmt4.c1
287 AND bmt1.c1 = c1.c1
288 AND bmt1.c1 = c2.c1
289 ;
290
291 ----
292 ---- No. S-2-2 the number of the tables per quiry block
293 ----
294
295 -- No. S-2-2-1
296 EXPLAIN (COSTS false)
297 WITH c1 (c1) AS (
298 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
299 )
300 SELECT max(bmt1.c1), (
301 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
302 )
303                     FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
304 AND bmt1.c1 <> (
305 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
306 )
307 ;
308 /*+SeqScan(bmt1)
309 TidScan(b1t1)
310 BitmapScan(b2t1 t1_pkey)
311 IndexScan(b3t1 t1_pkey)
312 */
313 EXPLAIN (COSTS false)
314 WITH c1 (c1) AS (
315 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
316 )
317 SELECT max(bmt1.c1), (
318 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
319 )
320                     FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
321 AND bmt1.c1 <> (
322 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
323 )
324 ;
325
326 -- No. S-2-2-2
327 EXPLAIN (COSTS false)
328 WITH c1 (c1) AS (
329 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)'
330 )
331 SELECT max(bmt1.c1), (
332 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)'
333 )
334                     FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
335 AND bmt1.c1 <> (
336 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)'
337 )
338 ;
339 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)
340 TidScan(b1t1)SeqScan(b1t2)
341 BitmapScan(b2t1 t1_pkey)TidScan(b2t2)
342 IndexScan(b3t1 t1_pkey)BitmapScan(b3t2 t2_pkey)
343 */
344 EXPLAIN (COSTS false)
345 WITH c1 (c1) AS (
346 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)'
347 )
348 SELECT max(bmt1.c1), (
349 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)'
350 )
351                     FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
352 AND bmt1.c1 <> (
353 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)'
354 )
355 ;
356
357 -- No. S-2-2-3
358 EXPLAIN (COSTS false)
359 WITH c1 (c1) AS (
360 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
361 )
362 SELECT max(bmt1.c1), (
363 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
364 )
365                     FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)' AND bmt1.c1 = c1.c1
366 AND bmt1.c1 <> (
367 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
368 )
369 ;
370 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
371 TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
372 BitmapScan(b2t1 t1_pkey)TidScan(b2t2)SeqScan(b2t3)IndexScan(b2t4 t4_pkey)
373 IndexScan(b3t1 t1_pkey)BitmapScan(b3t2 t2_pkey)TidScan(b3t3)SeqScan(b3t4)
374 */
375 EXPLAIN (COSTS false)
376 WITH c1 (c1) AS (
377 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
378 )
379 SELECT max(bmt1.c1), (
380 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
381 )
382                     FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)' AND bmt1.c1 = c1.c1
383 AND bmt1.c1 <> (
384 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
385 )
386 ;
387
388 -- No. S-2-2-4
389 EXPLAIN (COSTS false)
390 WITH c1 (c1) AS (
391 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
392 )
393 SELECT max(bmt1.c1), (
394 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
395 )
396                     FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)' AND bmt1.c1 = c1.c1
397 AND bmt1.c1 <> (
398 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
399 )
400 ;
401 /*+SeqScan(bmt1)IndexScan(bmt2 t2_pkey)BitmapScan(bmt3 t3_pkey)TidScan(bmt4)
402 TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
403 BitmapScan(b2t1 t1_pkey)
404 IndexScan(b3t1 t1_pkey)
405 */
406 EXPLAIN (COSTS false)
407 WITH c1 (c1) AS (
408 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
409 )
410 SELECT max(bmt1.c1), (
411 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
412 )
413                     FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)' AND bmt1.c1 = c1.c1
414 AND bmt1.c1 <> (
415 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
416 )
417 ;
418
419 ----
420 ---- No. S-2-3 RULE definition table
421 ----
422
423 -- No. S-2-3-1
424 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
425 /*+TidScan(t1)SeqScan(t2)IndexScan(t3 t3_pkey)BitmapScan(t4 t4_pkey)
426 SeqScan(r1)*/
427 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
428 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
429 /*+TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
430 SeqScan(r1_)*/
431 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
432
433 -- No. S-2-3-2
434 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
435 /*+TidScan(t1)SeqScan(t2)IndexScan(t3 t3_pkey)BitmapScan(t4 t4_pkey)
436 SeqScan(r2)*/
437 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
438 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
439 /*+TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
440 BitmapScan(b2t1 t1_pkey)TidScan(b2t2)SeqScan(b2t3)IndexScan(b2t4 t4_pkey)
441 SeqScan(r2_)*/
442 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
443
444 -- No. S-2-3-3
445 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
446 /*+TidScan(t1)SeqScan(t2)IndexScan(t3 t3_pkey)BitmapScan(t4 t4_pkey)
447 SeqScan(r3)*/
448 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
449 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
450 /*+TidScan(b1t1)SeqScan(b1t2)IndexScan(b1t3 t3_pkey)BitmapScan(b1t4 t4_pkey)
451 BitmapScan(b2t1 t1_pkey)TidScan(b2t2)SeqScan(b2t3)IndexScan(b2t4 t4_pkey)
452 IndexScan(b3t1 t1_pkey)BitmapScan(b3t2 t2_pkey)TidScan(b3t3)SeqScan(b3t4)
453 SeqScan(r3_)*/
454 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
455
456 ----
457 ---- No. S-2-4 VALUES clause
458 ----
459
460 -- No. S-2-4-1
461 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1) WHERE t1.c1 = 1;
462 /*+SeqScan(t1)*/
463 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1) WHERE t1.c1 = 1;
464 /*+SeqScan(*VALUES*)*/
465 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1) WHERE t1.c1 = 1;
466
467 -- No. S-2-4-2
468 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1;
469 /*+SeqScan(t1 t2)*/
470 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1;
471 /*+SeqScan(*VALUES*)*/
472 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1;
473
474 ----
475 ---- No. S-3-1 scan method hint
476 ----
477
478 -- No. S-3-1-1
479 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
480 /*+SeqScan(t1)*/
481 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
482
483 -- No. S-3-1-2
484 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
485 /*+SeqScan(t1)*/
486 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
487
488 -- No. S-3-1-3
489 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
490 /*+IndexScan(t1)*/
491 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
492
493 -- No. S-3-1-4
494 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
495 /*+IndexScan(t1)*/
496 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
497
498 -- No. S-3-1-5
499 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
500 /*+BitmapScan(t1)*/
501 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
502
503 -- No. S-3-1-6
504 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
505 /*+BitmapScan(t1)*/
506 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
507
508 -- No. S-3-1-7
509 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
510 /*+TidScan(t1)*/
511 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
512
513 -- No. S-3-1-8
514 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid IN ('(1,1)', '(2,2)', '(3,3)');
515 /*+TidScan(t1)*/
516 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid IN ('(1,1)', '(2,2)', '(3,3)');
517
518 -- No. S-3-1-9
519 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
520 /*+NoSeqScan(t1)*/
521 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
522
523 -- No. S-3-1-10
524 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
525 /*+NoSeqScan(t1)*/
526 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
527
528 -- No. S-3-1-11
529 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
530 /*+NoIndexScan(t1)*/
531 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
532
533 -- No. S-3-1-12
534 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
535 /*+NoIndexScan(t1)*/
536 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
537
538 -- No. S-3-1-13
539 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
540 /*+NoBitmapScan(t1)*/
541 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
542
543 -- No. S-3-1-14
544 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
545 /*+NoBitmapScan(t1)*/
546 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
547
548 -- No. S-3-1-15
549 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
550 /*+NoTidScan(t1)*/
551 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
552
553 -- No. S-3-1-16
554 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
555 /*+NoTidScan(t1)*/
556 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
557
558 -- No. S-3-1-17
559 EXPLAIN (COSTS false) SELECT c1 FROM s1.t1 WHERE t1.c1 = 1;
560 /*+IndexOnlyScan(t1)*/
561 EXPLAIN (COSTS false) SELECT c1 FROM s1.t1 WHERE t1.c1 = 1;
562
563 -- No. S-3-1-18
564 EXPLAIN (COSTS false) SELECT c1 FROM s1.t1 WHERE t1.c1 >= 1;
565 /*+IndexOnlyScan(t1)*/
566 EXPLAIN (COSTS false) SELECT c1 FROM s1.t1 WHERE t1.c1 >= 1;
567
568 -- No. S-3-1-19
569 EXPLAIN (COSTS false) SELECT c1 FROM s1.t1 WHERE t1.c1 = 1;
570 /*+NoIndexOnlyScan(t1)*/
571 EXPLAIN (COSTS false) SELECT c1 FROM s1.t1 WHERE t1.c1 = 1;
572
573 -- No. S-3-1-20
574 EXPLAIN (COSTS false) SELECT c1 FROM s1.t1 WHERE t1.c1 >= 1;
575 /*+NoIndexOnlyScan(t1)*/
576 EXPLAIN (COSTS false) SELECT c1 FROM s1.t1 WHERE t1.c1 >= 1;
577
578 ----
579 ---- No. S-3-3 index name specified
580 ----
581
582 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
583 SET enable_tidscan TO off;
584 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
585 SET enable_indexscan TO off;
586 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
587 RESET enable_tidscan;
588 RESET enable_indexscan;
589
590 EXPLAIN (COSTS false) SELECT c2 FROM s1.ti1 WHERE ti1.c2 >= 1;
591
592 -- No. S-3-3-1
593 /*+IndexScan(ti1 ti1_i3)*/
594 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
595
596 -- No. S-3-3-2
597 /*+IndexScan(ti1 ti1_i3 ti1_i2)*/
598 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
599
600 -- No. S-3-3-3
601 /*+IndexScan(ti1 ti1_i4 ti1_i3 ti1_i2 ti1_i1)*/
602 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
603
604 -- No. S-3-3-4
605 /*+BitmapScan(ti1 ti1_i3)*/
606 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
607
608 -- No. S-3-3-5
609 /*+BitmapScan(ti1 ti1_i3 ti1_i2)*/
610 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
611
612 -- No. S-3-3-6
613 /*+BitmapScan(ti1 ti1_i4 ti1_i3 ti1_i2 ti1_i1)*/
614 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE ti1.c2 = 1 AND ctid = '(1,1)';
615
616 -- No. S-3-3-7
617 /*+IndexOnlyScan(ti1 ti1_i3)*/
618 EXPLAIN (COSTS false) SELECT c2 FROM s1.ti1 WHERE ti1.c2 >= 1;
619
620 -- No. S-3-3-8
621 /*+IndexOnlyScan(ti1 ti1_i3 ti1_i2)*/
622 EXPLAIN (COSTS false) SELECT c2 FROM s1.ti1 WHERE ti1.c2 >= 1;
623
624 -- No. S-3-3-9
625 /*+IndexOnlyScan(ti1 ti1_i4 ti1_i3 ti1_i2 ti1_i1)*/
626 EXPLAIN (COSTS false) SELECT c2 FROM s1.ti1 WHERE ti1.c2 >= 1;
627
628 ----
629 ---- No. S-3-4 index type
630 ----
631
632 \d s1.ti1
633 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)';
634
635 -- No. S-3-4-1
636 /*+IndexScan(ti1 ti1_btree)*/
637 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)';
638
639 -- No. S-3-4-2
640 /*+IndexScan(ti1 ti1_hash)*/
641 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)';
642
643 -- No. S-3-4-3
644 /*+IndexScan(ti1 ti1_gist)*/
645 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)';
646
647 -- No. S-3-4-4
648 /*+IndexScan(ti1 ti1_gin)*/
649 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)';
650
651 -- No. S-3-4-5
652 /*+IndexScan(ti1 ti1_expr)*/
653 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)';
654
655 -- No. S-3-4-6
656 /*+IndexScan(ti1 ti1_pred)*/
657 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)';
658
659 -- No. S-3-4-7
660 /*+IndexScan(ti1 ti1_uniq)*/
661 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)';
662
663 -- No. S-3-4-8
664 /*+IndexScan(ti1 ti1_multi)*/
665 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)';
666
667 -- No. S-3-4-9
668 /*+IndexScan(ti1 ti1_ts)*/
669 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)';
670
671 -- No. S-3-4-10
672 /*+IndexScan(ti1 ti1_pkey)*/
673 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)';
674
675 -- No. S-3-4-11
676 /*+IndexScan(ti1 ti1_c2_key)*/
677 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)';
678
679 -- No. S-3-4-12
680 /*+BitmapScan(ti1 ti1_btree)*/
681 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)';
682
683 -- No. S-3-4-13
684 /*+BitmapScan(ti1 ti1_hash)*/
685 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)';
686
687 -- No. S-3-4-14
688 /*+BitmapScan(ti1 ti1_gist)*/
689 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)';
690
691 -- No. S-3-4-15
692 /*+BitmapScan(ti1 ti1_gin)*/
693 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)';
694
695 -- No. S-3-4-16
696 /*+BitmapScan(ti1 ti1_expr)*/
697 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)';
698
699 -- No. S-3-4-17
700 /*+BitmapScan(ti1 ti1_pred)*/
701 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)';
702
703 -- No. S-3-4-18
704 /*+BitmapScan(ti1 ti1_uniq)*/
705 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)';
706
707 -- No. S-3-4-19
708 /*+BitmapScan(ti1 ti1_multi)*/
709 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)';
710
711 -- No. S-3-4-20
712 /*+BitmapScan(ti1 ti1_ts)*/
713 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)';
714
715 -- No. S-3-4-10
716 /*+BitmapScan(ti1 ti1_pkey)*/
717 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)';
718
719 -- No. S-3-4-11
720 /*+BitmapScan(ti1 ti1_c2_key)*/
721 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)';
722
723 -- No. S-3-4-23
724 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
725 /*+IndexOnlyScan(ti1 ti1_btree)*/
726 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
727
728 -- No. S-3-4-24
729 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 = 1;
730 /*+IndexOnlyScan(ti1 ti1_hash)*/
731 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 = 1;
732
733 -- No. S-3-4-25
734 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 < 1;
735 /*+IndexOnlyScan(ti1 ti1_gist)*/
736 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 < 1;
737
738 -- No. S-3-4-26
739 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 = 1;
740 /*+IndexOnlyScan(ti1 ti1_gin)*/
741 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 = 1;
742
743 -- No. S-3-4-27
744 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 < 100;
745 /*+IndexOnlyScan(ti1 ti1_expr)*/
746 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 < 100;
747
748 -- No. S-3-4-28
749 EXPLAIN (COSTS false) SELECT c4 FROM s1.ti1 WHERE lower(c4) >= '1';
750 /*+IndexOnlyScan(ti1 ti1_pred)*/
751 EXPLAIN (COSTS false) SELECT c4 FROM s1.ti1 WHERE lower(c4) >= '1';
752
753 -- No. S-3-4-29
754 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
755 /*+IndexOnlyScan(ti1 ti1_uniq)*/
756 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
757
758 -- No. S-3-4-30
759 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
760 /*+IndexOnlyScan(ti1 ti1_multi)*/
761 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
762
763 -- No. S-3-4-31
764 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE to_tsvector('english', c4) @@ 'a & b';
765 /*+IndexOnlyScan(ti1 ti1_ts)*/
766 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE to_tsvector('english', c4) @@ 'a & b';
767
768 -- No. S-3-4-32
769 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
770 /*+IndexOnlyScan(ti1 ti1_pkey)*/
771 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
772
773 -- No. S-3-4-33
774 EXPLAIN (COSTS false) SELECT c2 FROM s1.ti1 WHERE c2 >= 1;
775 /*+IndexOnlyScan(ti1 ti1_c2_key)*/
776 EXPLAIN (COSTS false) SELECT c2 FROM s1.ti1 WHERE c2 >= 1;
777
778 ----
779 ---- No. S-3-5 not used index
780 ----
781
782 -- No. S-3-5-1
783 /*+IndexScan(ti1 ti1_pred)*/
784 EXPLAIN (COSTS true) SELECT * FROM s1.ti1 WHERE c1 = 100;
785
786 -- No. S-3-5-2
787 /*+BitmapScan(ti1 ti1_pred)*/
788 EXPLAIN (COSTS true) SELECT * FROM s1.ti1 WHERE c1 = 100;
789
790 -- No. S-3-5-3
791 /*+IndexOnlyScan(ti1 ti1_pred)*/
792 EXPLAIN (COSTS true) SELECT c1 FROM s1.ti1 WHERE c1 = 100;
793
794 ----
795 ---- No. S-3-6 not exist index
796 ----
797
798 -- No. S-3-6-1
799 /*+IndexScan(ti1 not_exist)*/
800 EXPLAIN (COSTS true) SELECT * FROM s1.ti1 WHERE c1 = 100;
801
802 -- No. S-3-6-2
803 /*+BitmapScan(ti1 not_exist)*/
804 EXPLAIN (COSTS true) SELECT * FROM s1.ti1 WHERE c1 = 100;
805
806 -- No. S-3-6-3
807 /*+IndexOnlyScan(ti1 not_exist)*/
808 EXPLAIN (COSTS true) SELECT c1 FROM s1.ti1 WHERE c1 = 100;
809
810 ----
811 ---- No. S-3-7 query structure
812 ----
813
814 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';
815
816 -- No. S-3-7-1
817 /*+SeqScan(t1)*/
818 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE c1 = 100;
819
820 -- No. S-3-7-2
821 /*+SeqScan(t1)BitmapScan(t2)*/
822 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';
823
824 -- No. S-3-7-3
825 /*+SeqScan(t1)*/
826 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';
827
828 ----
829 ---- No. S-3-8 query structure
830 ----
831
832 -- No. S-3-8-1
833 EXPLAIN (COSTS false) 
834 WITH c1 (c1) AS (
835 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.c1 = 1)
836 SELECT max(b3t1.c1), (
837 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
838                   ) FROM s1.t1 b3t1 WHERE b3t1.c1 = (
839 SELECT max(b4t1.c1) FROM s1.t1 b4t1 WHERE b4t1.c1 = 1);
840 /*+SeqScan(b1t1)IndexScan(b2t1 t1_pkey)BitmapScan(b3t1 t1_pkey)TidScan(b4t1)
841 */
842 EXPLAIN (COSTS false) 
843 WITH c1 (c1) AS (
844 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.c1 = 1)
845 SELECT max(b3t1.c1), (
846 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
847                   ) FROM s1.t1 b3t1 WHERE b3t1.c1 = (
848 SELECT max(b4t1.c1) FROM s1.t1 b4t1 WHERE b4t1.c1 = 1);
849
850 -- No. S-3-8-2
851 EXPLAIN (COSTS false) 
852 WITH cte1 (c1) AS (
853 SELECT max(b1t1.c1) FROM s1.t1 b1t1 JOIN s1.t2 b1t2 ON(b1t1.c1 = b1t2.c1) WHERE b1t1.c1 = 1)
854 SELECT max(b3t1.c1), (
855 SELECT max(b2t1.c1) FROM s1.t1 b2t1 JOIN s1.t2 b2t2 ON(b2t1.c1 = b2t2.c1) WHERE b2t1.c1 = 1
856                   ) FROM s1.t1 b3t1 JOIN s1.t2 b3t2 ON(b3t1.c1 = b3t2.c1) JOIN cte1 ON(b3t1.c1 = cte1.c1) WHERE b3t1.c1 = (
857 SELECT max(b4t1.c1) FROM s1.t1 b4t1 JOIN s1.t2 b4t2 ON(b4t1.c1 = b4t2.c1) WHERE b4t1.c1 = 1);
858 /*+SeqScan(b1t1)IndexScan(b2t1 t1_pkey)BitmapScan(b3t1 t1_pkey)TidScan(b4t1)
859 TidScan(b1t2)SeqScan(b2t2)IndexScan(b3t2 t2_pkey)BitmapScan(b4t2 t2_pkey)
860 */
861 EXPLAIN (COSTS false) 
862 WITH cte1 (c1) AS (
863 SELECT max(b1t1.c1) FROM s1.t1 b1t1 JOIN s1.t2 b1t2 ON(b1t1.c1 = b1t2.c1) WHERE b1t1.c1 = 1)
864 SELECT max(b3t1.c1), (
865 SELECT max(b2t1.c1) FROM s1.t1 b2t1 JOIN s1.t2 b2t2 ON(b2t1.c1 = b2t2.c1) WHERE b2t1.c1 = 1
866                   ) FROM s1.t1 b3t1 JOIN s1.t2 b3t2 ON(b3t1.c1 = b3t2.c1) JOIN cte1 ON(b3t1.c1 = cte1.c1) WHERE b3t1.c1 = (
867 SELECT max(b4t1.c1) FROM s1.t1 b4t1 JOIN s1.t2 b4t2 ON(b4t1.c1 = b4t2.c1) WHERE b4t1.c1 = 1);
868
869 -- No. S-3-8-3
870 EXPLAIN (COSTS false) 
871 WITH cte1 (c1) AS (
872 SELECT max(b1t1.c1) FROM s1.t1 b1t1 JOIN s1.t2 b1t2 ON(b1t1.c1 = b1t2.c1) WHERE b1t1.c1 = 1)
873 SELECT max(b3t1.c1), (
874 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
875                   ) FROM s1.t1 b3t1 JOIN s1.t2 b3t2 ON(b3t1.c1 = b3t2.c1) JOIN cte1 ON(b3t1.c1 = cte1.c1) WHERE b3t1.c1 = (
876 SELECT max(b4t1.c1) FROM s1.t1 b4t1 WHERE b4t1.c1 = 1);
877 /*+SeqScan(b1t1)IndexScan(b2t1 t1_pkey)BitmapScan(b3t1 t1_pkey)TidScan(b4t1)
878 TidScan(b1t2)IndexScan(b3t2 t2_pkey)
879 */
880 EXPLAIN (COSTS false) 
881 WITH cte1 (c1) AS (
882 SELECT max(b1t1.c1) FROM s1.t1 b1t1 JOIN s1.t2 b1t2 ON(b1t1.c1 = b1t2.c1) WHERE b1t1.c1 = 1)
883 SELECT max(b3t1.c1), (
884 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.c1 = 1
885                   ) FROM s1.t1 b3t1 JOIN s1.t2 b3t2 ON(b3t1.c1 = b3t2.c1) JOIN cte1 ON(b3t1.c1 = cte1.c1) WHERE b3t1.c1 = (
886 SELECT max(b4t1.c1) FROM s1.t1 b4t1 WHERE b4t1.c1 = 1);
887
888 ----
889 ---- No. S-3-9 inheritance table select type
890 ----
891
892 -- No. S-3-9-1
893 EXPLAIN (COSTS false) SELECT * FROM ONLY s1.p1 WHERE c1 = 1;
894 /*+IndexScan(p1)*/
895 EXPLAIN (COSTS false) SELECT * FROM ONLY s1.p1 WHERE c1 = 1;
896
897 -- No. S-3-9-2
898 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1;
899 /*+IndexScan(p1)*/
900 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1;
901
902 ----
903 ---- No. S-3-10 inheritance table number
904 ----
905
906 -- No. S-3-10-1
907 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1;
908 /*+IndexScan(p1)*/
909 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1;
910
911 -- No. S-3-10-2
912 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
913 /*+IndexScan(p2)*/
914 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
915
916 ----
917 ---- No. S-3-11 inheritance table specified table
918 ----
919
920 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
921
922 -- No. S-3-11-1
923 /*+IndexScan(p2)*/
924 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
925
926 -- No. S-3-11-2
927 /*+IndexScan(p2c1)*/
928 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
929
930 -- No. S-3-11-3
931 /*+IndexScan(p2 p2_pkey p2c1_pkey p2c1c1_pkey)*/
932 EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1;
933
934 -- No. S-3-11-4
935 /*+IndexScan(p2 p2c1_pkey)*/
936 EXPLAIN (COSTS true) SELECT * FROM s1.p2 WHERE c1 = 1;
937
938 ----
939 ---- No. S-3-12 specified same table
940 ----
941
942 -- No. S-3-12-1
943 /*+IndexScan(ti1) BitmapScan(ti1)*/
944 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
945
946 -- No. S-3-12-2
947 /*+IndexScan(ti1 ti1_pkey) BitmapScan(ti1 ti1_btree)*/
948 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
949
950 -- No. S-3-12-3
951 /*+BitmapScan(ti1) IndexScan(ti1) BitmapScan(ti1)*/
952 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
953
954 -- No. S-3-12-4
955 /*+BitmapScan(ti1 ti1_hash) IndexScan(ti1 ti1_pkey) BitmapScan(ti1 ti1_btree)*/
956 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
957
958 ----
959 ---- No. S-3-13 message output
960 ----
961
962 -- No. S-3-13-1
963 /*+SeqScan(ti1)*/
964 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
965
966 -- No. S-3-13-2
967 /*+SeqScan(ti1 ti1_pkey)*/
968 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
969
970 -- No. S-3-13-3
971 /*+SeqScan(ti1 ti1_pkey ti1_btree)*/
972 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
973
974 -- No. S-3-13-4
975 /*+IndexScan(ti1)*/
976 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
977
978 -- No. S-3-13-5
979 /*+IndexScan(ti1 ti1_pkey)*/
980 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
981
982 -- No. S-3-13-6
983 /*+IndexScan(ti1 ti1_pkey ti1_btree)*/
984 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
985
986 -- No. S-3-13-7
987 /*+BitmapScan(ti1)*/
988 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
989
990 -- No. S-3-13-8
991 /*+BitmapScan(ti1 ti1_pkey)*/
992 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
993
994 -- No. S-3-13-9
995 /*+BitmapScan(ti1 ti1_pkey ti1_btree)*/
996 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
997
998 -- No. S-3-13-10
999 /*+TidScan(ti1)*/
1000 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1001
1002 -- No. S-3-13-11
1003 /*+TidScan(ti1 ti1_pkey)*/
1004 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1005
1006 -- No. S-3-13-12
1007 /*+TidScan(ti1 ti1_pkey ti1_btree)*/
1008 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1009
1010 -- No. S-3-13-13
1011 /*+NoSeqScan(ti1)*/
1012 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1013
1014 -- No. S-3-13-14
1015 /*+NoSeqScan(ti1 ti1_pkey)*/
1016 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1017
1018 -- No. S-3-13-15
1019 /*+NoSeqScan(ti1 ti1_pkey ti1_btree)*/
1020 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1021
1022 -- No. S-3-13-16
1023 /*+NoIndexScan(ti1)*/
1024 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1025
1026 -- No. S-3-13-17
1027 /*+NoIndexScan(ti1 ti1_pkey)*/
1028 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1029
1030 -- No. S-3-13-18
1031 /*+NoIndexScan(ti1 ti1_pkey ti1_btree)*/
1032 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1033
1034 -- No. S-3-13-19
1035 /*+NoBitmapScan(ti1)*/
1036 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1037
1038 -- No. S-3-13-20
1039 /*+NoBitmapScan(ti1 ti1_pkey)*/
1040 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1041
1042 -- No. S-3-13-21
1043 /*+NoBitmapScan(ti1 ti1_pkey ti1_btree)*/
1044 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1045
1046 -- No. S-3-13-22
1047 /*+NoTidScan(ti1)*/
1048 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1049
1050 -- No. S-3-13-23
1051 /*+NoTidScan(ti1 ti1_pkey)*/
1052 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1053
1054 -- No. S-3-13-24
1055 /*+NoTidScan(ti1 ti1_pkey ti1_btree)*/
1056 EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 = 1 AND ctid = '(1,1)';
1057
1058 -- No. S-3-13-25
1059 /*+IndexOnlyScan(ti1)*/
1060 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
1061
1062 -- No. S-3-13-26
1063 /*+IndexOnlyScan(ti1 ti1_pkey)*/
1064 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
1065
1066 -- No. S-3-13-27
1067 /*+IndexOnlyScan(ti1 ti1_pkey ti1_btree)*/
1068 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 >= 1;
1069
1070 -- No. S-3-13-28
1071 /*+NoIndexOnlyScan(ti1)*/
1072 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 = 1;
1073
1074 -- No. S-3-13-29
1075 /*+NoIndexOnlyScan(ti1 ti1_pkey)*/
1076 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 = 1;
1077
1078 -- No. S-3-13-30
1079 /*+NoIndexOnlyScan(ti1 ti1_pkey ti1_btree)*/
1080 EXPLAIN (COSTS false) SELECT c1 FROM s1.ti1 WHERE c1 = 1;