Consistently use "superuser" instead of "super user"
[pgsql.git] / src / test / regress / expected / select_implicit.out
blob27c07de92cc94627175db7efb04a3f1ec0ab570a
1 --
2 -- SELECT_IMPLICIT
3 -- Test cases for queries with ordering terms missing from the target list.
4 -- This used to be called "junkfilter.sql".
5 -- The parser uses the term "resjunk" to handle these cases.
6 -- - thomas 1998-07-09
7 --
8 -- load test data
9 CREATE TABLE test_missing_target (a int, b int, c char(8), d char);
10 INSERT INTO test_missing_target VALUES (0, 1, 'XXXX', 'A');
11 INSERT INTO test_missing_target VALUES (1, 2, 'ABAB', 'b');
12 INSERT INTO test_missing_target VALUES (2, 2, 'ABAB', 'c');
13 INSERT INTO test_missing_target VALUES (3, 3, 'BBBB', 'D');
14 INSERT INTO test_missing_target VALUES (4, 3, 'BBBB', 'e');
15 INSERT INTO test_missing_target VALUES (5, 3, 'bbbb', 'F');
16 INSERT INTO test_missing_target VALUES (6, 4, 'cccc', 'g');
17 INSERT INTO test_missing_target VALUES (7, 4, 'cccc', 'h');
18 INSERT INTO test_missing_target VALUES (8, 4, 'CCCC', 'I');
19 INSERT INTO test_missing_target VALUES (9, 4, 'CCCC', 'j');
20 --   w/ existing GROUP BY target
21 SELECT c, count(*) FROM test_missing_target GROUP BY test_missing_target.c ORDER BY c;
22     c     | count 
23 ----------+-------
24  ABAB     |     2
25  BBBB     |     2
26  CCCC     |     2
27  XXXX     |     1
28  bbbb     |     1
29  cccc     |     2
30 (6 rows)
32 --   w/o existing GROUP BY target using a relation name in GROUP BY clause
33 SELECT count(*) FROM test_missing_target GROUP BY test_missing_target.c ORDER BY c;
34  count 
35 -------
36      2
37      2
38      2
39      1
40      1
41      2
42 (6 rows)
44 --   w/o existing GROUP BY target and w/o existing a different ORDER BY target
45 --   failure expected
46 SELECT count(*) FROM test_missing_target GROUP BY a ORDER BY b;
47 ERROR:  column "test_missing_target.b" must appear in the GROUP BY clause or be used in an aggregate function
48 LINE 1: ...ECT count(*) FROM test_missing_target GROUP BY a ORDER BY b;
49                                                                      ^
50 --   w/o existing GROUP BY target and w/o existing same ORDER BY target
51 SELECT count(*) FROM test_missing_target GROUP BY b ORDER BY b;
52  count 
53 -------
54      1
55      2
56      3
57      4
58 (4 rows)
60 --   w/ existing GROUP BY target using a relation name in target
61 SELECT test_missing_target.b, count(*)
62   FROM test_missing_target GROUP BY b ORDER BY b;
63  b | count 
64 ---+-------
65  1 |     1
66  2 |     2
67  3 |     3
68  4 |     4
69 (4 rows)
71 --   w/o existing GROUP BY target
72 SELECT c FROM test_missing_target ORDER BY a;
73     c     
74 ----------
75  XXXX    
76  ABAB    
77  ABAB    
78  BBBB    
79  BBBB    
80  bbbb    
81  cccc    
82  cccc    
83  CCCC    
84  CCCC    
85 (10 rows)
87 --   w/o existing ORDER BY target
88 SELECT count(*) FROM test_missing_target GROUP BY b ORDER BY b desc;
89  count 
90 -------
91      4
92      3
93      2
94      1
95 (4 rows)
97 --   group using reference number
98 SELECT count(*) FROM test_missing_target ORDER BY 1 desc;
99  count 
100 -------
101     10
102 (1 row)
104 --   order using reference number
105 SELECT c, count(*) FROM test_missing_target GROUP BY 1 ORDER BY 1;
106     c     | count 
107 ----------+-------
108  ABAB     |     2
109  BBBB     |     2
110  CCCC     |     2
111  XXXX     |     1
112  bbbb     |     1
113  cccc     |     2
114 (6 rows)
116 --   group using reference number out of range
117 --   failure expected
118 SELECT c, count(*) FROM test_missing_target GROUP BY 3;
119 ERROR:  GROUP BY position 3 is not in select list
120 LINE 1: SELECT c, count(*) FROM test_missing_target GROUP BY 3;
121                                                              ^
122 --   group w/o existing GROUP BY and ORDER BY target under ambiguous condition
123 --   failure expected
124 SELECT count(*) FROM test_missing_target x, test_missing_target y
125         WHERE x.a = y.a
126         GROUP BY b ORDER BY b;
127 ERROR:  column reference "b" is ambiguous
128 LINE 3:  GROUP BY b ORDER BY b;
129                              ^
130 --   order w/ target under ambiguous condition
131 --   failure NOT expected
132 SELECT a, a FROM test_missing_target
133         ORDER BY a;
134  a | a 
135 ---+---
136  0 | 0
137  1 | 1
138  2 | 2
139  3 | 3
140  4 | 4
141  5 | 5
142  6 | 6
143  7 | 7
144  8 | 8
145  9 | 9
146 (10 rows)
148 --   order expression w/ target under ambiguous condition
149 --   failure NOT expected
150 SELECT a/2, a/2 FROM test_missing_target
151         ORDER BY a/2;
152  ?column? | ?column? 
153 ----------+----------
154         0 |        0
155         0 |        0
156         1 |        1
157         1 |        1
158         2 |        2
159         2 |        2
160         3 |        3
161         3 |        3
162         4 |        4
163         4 |        4
164 (10 rows)
166 --   group expression w/ target under ambiguous condition
167 --   failure NOT expected
168 SELECT a/2, a/2 FROM test_missing_target
169         GROUP BY a/2 ORDER BY a/2;
170  ?column? | ?column? 
171 ----------+----------
172         0 |        0
173         1 |        1
174         2 |        2
175         3 |        3
176         4 |        4
177 (5 rows)
179 --   group w/ existing GROUP BY target under ambiguous condition
180 SELECT x.b, count(*) FROM test_missing_target x, test_missing_target y
181         WHERE x.a = y.a
182         GROUP BY x.b ORDER BY x.b;
183  b | count 
184 ---+-------
185  1 |     1
186  2 |     2
187  3 |     3
188  4 |     4
189 (4 rows)
191 --   group w/o existing GROUP BY target under ambiguous condition
192 SELECT count(*) FROM test_missing_target x, test_missing_target y
193         WHERE x.a = y.a
194         GROUP BY x.b ORDER BY x.b;
195  count 
196 -------
197      1
198      2
199      3
200      4
201 (4 rows)
203 --   group w/o existing GROUP BY target under ambiguous condition
204 --   into a table
205 CREATE TABLE test_missing_target2 AS
206 SELECT count(*)
207 FROM test_missing_target x, test_missing_target y
208         WHERE x.a = y.a
209         GROUP BY x.b ORDER BY x.b;
210 SELECT * FROM test_missing_target2;
211  count 
212 -------
213      1
214      2
215      3
216      4
217 (4 rows)
219 --  Functions and expressions
220 --   w/ existing GROUP BY target
221 SELECT a%2, count(b) FROM test_missing_target
222 GROUP BY test_missing_target.a%2
223 ORDER BY test_missing_target.a%2;
224  ?column? | count 
225 ----------+-------
226         0 |     5
227         1 |     5
228 (2 rows)
230 --   w/o existing GROUP BY target using a relation name in GROUP BY clause
231 SELECT count(c) FROM test_missing_target
232 GROUP BY lower(test_missing_target.c)
233 ORDER BY lower(test_missing_target.c);
234  count 
235 -------
236      2
237      3
238      4
239      1
240 (4 rows)
242 --   w/o existing GROUP BY target and w/o existing a different ORDER BY target
243 --   failure expected
244 SELECT count(a) FROM test_missing_target GROUP BY a ORDER BY b;
245 ERROR:  column "test_missing_target.b" must appear in the GROUP BY clause or be used in an aggregate function
246 LINE 1: ...ECT count(a) FROM test_missing_target GROUP BY a ORDER BY b;
247                                                                      ^
248 --   w/o existing GROUP BY target and w/o existing same ORDER BY target
249 SELECT count(b) FROM test_missing_target GROUP BY b/2 ORDER BY b/2;
250  count 
251 -------
252      1
253      5
254      4
255 (3 rows)
257 --   w/ existing GROUP BY target using a relation name in target
258 SELECT lower(test_missing_target.c), count(c)
259   FROM test_missing_target GROUP BY lower(c) ORDER BY lower(c);
260  lower | count 
261 -------+-------
262  abab  |     2
263  bbbb  |     3
264  cccc  |     4
265  xxxx  |     1
266 (4 rows)
268 --   w/o existing GROUP BY target
269 SELECT a FROM test_missing_target ORDER BY upper(d);
270  a 
282 (10 rows)
284 --   w/o existing ORDER BY target
285 SELECT count(b) FROM test_missing_target
286         GROUP BY (b + 1) / 2 ORDER BY (b + 1) / 2 desc;
287  count 
288 -------
289      7
290      3
291 (2 rows)
293 --   group w/o existing GROUP BY and ORDER BY target under ambiguous condition
294 --   failure expected
295 SELECT count(x.a) FROM test_missing_target x, test_missing_target y
296         WHERE x.a = y.a
297         GROUP BY b/2 ORDER BY b/2;
298 ERROR:  column reference "b" is ambiguous
299 LINE 3:  GROUP BY b/2 ORDER BY b/2;
300                                ^
301 --   group w/ existing GROUP BY target under ambiguous condition
302 SELECT x.b/2, count(x.b) FROM test_missing_target x, test_missing_target y
303         WHERE x.a = y.a
304         GROUP BY x.b/2 ORDER BY x.b/2;
305  ?column? | count 
306 ----------+-------
307         0 |     1
308         1 |     5
309         2 |     4
310 (3 rows)
312 --   group w/o existing GROUP BY target under ambiguous condition
313 --   failure expected due to ambiguous b in count(b)
314 SELECT count(b) FROM test_missing_target x, test_missing_target y
315         WHERE x.a = y.a
316         GROUP BY x.b/2;
317 ERROR:  column reference "b" is ambiguous
318 LINE 1: SELECT count(b) FROM test_missing_target x, test_missing_tar...
319                      ^
320 --   group w/o existing GROUP BY target under ambiguous condition
321 --   into a table
322 CREATE TABLE test_missing_target3 AS
323 SELECT count(x.b)
324 FROM test_missing_target x, test_missing_target y
325         WHERE x.a = y.a
326         GROUP BY x.b/2 ORDER BY x.b/2;
327 SELECT * FROM test_missing_target3;
328  count 
329 -------
330      1
331      5
332      4
333 (3 rows)
335 --   Cleanup
336 DROP TABLE test_missing_target;
337 DROP TABLE test_missing_target2;
338 DROP TABLE test_missing_target3;