~ubuntu-branches/debian/sid/postgresql-9.3/sid

« back to all changes in this revision

Viewing changes to src/test/regress/expected/text.out

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2013-05-08 05:39:52 UTC
  • Revision ID: package-import@ubuntu.com-20130508053952-1j7uilp7mjtrvq8q
Tags: upstream-9.3~beta1
ImportĀ upstreamĀ versionĀ 9.3~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--
 
2
-- TEXT
 
3
--
 
4
SELECT text 'this is a text string' = text 'this is a text string' AS true;
 
5
 true 
 
6
------
 
7
 t
 
8
(1 row)
 
9
 
 
10
SELECT text 'this is a text string' = text 'this is a text strin' AS false;
 
11
 false 
 
12
-------
 
13
 f
 
14
(1 row)
 
15
 
 
16
CREATE TABLE TEXT_TBL (f1 text);
 
17
INSERT INTO TEXT_TBL VALUES ('doh!');
 
18
INSERT INTO TEXT_TBL VALUES ('hi de ho neighbor');
 
19
SELECT '' AS two, * FROM TEXT_TBL;
 
20
 two |        f1         
 
21
-----+-------------------
 
22
     | doh!
 
23
     | hi de ho neighbor
 
24
(2 rows)
 
25
 
 
26
-- As of 8.3 we have removed most implicit casts to text, so that for example
 
27
-- this no longer works:
 
28
select length(42);
 
29
ERROR:  function length(integer) does not exist
 
30
LINE 1: select length(42);
 
31
               ^
 
32
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
 
33
-- But as a special exception for usability's sake, we still allow implicit
 
34
-- casting to text in concatenations, so long as the other input is text or
 
35
-- an unknown literal.  So these work:
 
36
select 'four: '::text || 2+2;
 
37
 ?column? 
 
38
----------
 
39
 four: 4
 
40
(1 row)
 
41
 
 
42
select 'four: ' || 2+2;
 
43
 ?column? 
 
44
----------
 
45
 four: 4
 
46
(1 row)
 
47
 
 
48
-- but not this:
 
49
select 3 || 4.0;
 
50
ERROR:  operator does not exist: integer || numeric
 
51
LINE 1: select 3 || 4.0;
 
52
                 ^
 
53
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
 
54
/*
 
55
 * various string functions
 
56
 */
 
57
select concat('one');
 
58
 concat 
 
59
--------
 
60
 one
 
61
(1 row)
 
62
 
 
63
select concat(1,2,3,'hello',true, false, to_date('20100309','YYYYMMDD'));
 
64
        concat        
 
65
----------------------
 
66
 123hellotf03-09-2010
 
67
(1 row)
 
68
 
 
69
select concat_ws('#','one');
 
70
 concat_ws 
 
71
-----------
 
72
 one
 
73
(1 row)
 
74
 
 
75
select concat_ws('#',1,2,3,'hello',true, false, to_date('20100309','YYYYMMDD'));
 
76
         concat_ws          
 
77
----------------------------
 
78
 1#2#3#hello#t#f#03-09-2010
 
79
(1 row)
 
80
 
 
81
select concat_ws(',',10,20,null,30);
 
82
 concat_ws 
 
83
-----------
 
84
 10,20,30
 
85
(1 row)
 
86
 
 
87
select concat_ws('',10,20,null,30);
 
88
 concat_ws 
 
89
-----------
 
90
 102030
 
91
(1 row)
 
92
 
 
93
select concat_ws(NULL,10,20,null,30) is null;
 
94
 ?column? 
 
95
----------
 
96
 t
 
97
(1 row)
 
98
 
 
99
select reverse('abcde');
 
100
 reverse 
 
101
---------
 
102
 edcba
 
103
(1 row)
 
104
 
 
105
select i, left('ahoj', i), right('ahoj', i) from generate_series(-5, 5) t(i) order by i;
 
106
 i  | left | right 
 
107
----+------+-------
 
108
 -5 |      | 
 
109
 -4 |      | 
 
110
 -3 | a    | j
 
111
 -2 | ah   | oj
 
112
 -1 | aho  | hoj
 
113
  0 |      | 
 
114
  1 | a    | j
 
115
  2 | ah   | oj
 
116
  3 | aho  | hoj
 
117
  4 | ahoj | ahoj
 
118
  5 | ahoj | ahoj
 
119
(11 rows)
 
120
 
 
121
select quote_literal('');
 
122
 quote_literal 
 
123
---------------
 
124
 ''
 
125
(1 row)
 
126
 
 
127
select quote_literal('abc''');
 
128
 quote_literal 
 
129
---------------
 
130
 'abc'''
 
131
(1 row)
 
132
 
 
133
select quote_literal(e'\\');
 
134
 quote_literal 
 
135
---------------
 
136
 E'\\'
 
137
(1 row)
 
138
 
 
139
-- check variadic labeled argument
 
140
select concat(variadic array[1,2,3]);
 
141
 concat 
 
142
--------
 
143
 123
 
144
(1 row)
 
145
 
 
146
select concat_ws(',', variadic array[1,2,3]);
 
147
 concat_ws 
 
148
-----------
 
149
 1,2,3
 
150
(1 row)
 
151
 
 
152
select concat_ws(',', variadic NULL);
 
153
 concat_ws 
 
154
-----------
 
155
 
 
156
(1 row)
 
157
 
 
158
select concat(variadic NULL) is NULL;
 
159
 ?column? 
 
160
----------
 
161
 t
 
162
(1 row)
 
163
 
 
164
select concat(variadic '{}'::int[]) = '';
 
165
 ?column? 
 
166
----------
 
167
 t
 
168
(1 row)
 
169
 
 
170
--should fail
 
171
select concat_ws(',', variadic 10);
 
172
ERROR:  VARIADIC argument must be an array
 
173
/*
 
174
 * format
 
175
 */
 
176
select format(NULL);
 
177
 format 
 
178
--------
 
179
 
 
180
(1 row)
 
181
 
 
182
select format('Hello');
 
183
 format 
 
184
--------
 
185
 Hello
 
186
(1 row)
 
187
 
 
188
select format('Hello %s', 'World');
 
189
   format    
 
190
-------------
 
191
 Hello World
 
192
(1 row)
 
193
 
 
194
select format('Hello %%');
 
195
 format  
 
196
---------
 
197
 Hello %
 
198
(1 row)
 
199
 
 
200
select format('Hello %%%%');
 
201
  format  
 
202
----------
 
203
 Hello %%
 
204
(1 row)
 
205
 
 
206
-- should fail
 
207
select format('Hello %s %s', 'World');
 
208
ERROR:  too few arguments for format
 
209
select format('Hello %s');
 
210
ERROR:  too few arguments for format
 
211
select format('Hello %x', 20);
 
212
ERROR:  unrecognized conversion type specifier "x"
 
213
-- check literal and sql identifiers
 
214
select format('INSERT INTO %I VALUES(%L,%L)', 'mytab', 10, 'Hello');
 
215
                 format                 
 
216
----------------------------------------
 
217
 INSERT INTO mytab VALUES('10','Hello')
 
218
(1 row)
 
219
 
 
220
select format('%s%s%s','Hello', NULL,'World');
 
221
   format   
 
222
------------
 
223
 HelloWorld
 
224
(1 row)
 
225
 
 
226
select format('INSERT INTO %I VALUES(%L,%L)', 'mytab', 10, NULL);
 
227
               format                
 
228
-------------------------------------
 
229
 INSERT INTO mytab VALUES('10',NULL)
 
230
(1 row)
 
231
 
 
232
select format('INSERT INTO %I VALUES(%L,%L)', 'mytab', NULL, 'Hello');
 
233
                 format                 
 
234
----------------------------------------
 
235
 INSERT INTO mytab VALUES(NULL,'Hello')
 
236
(1 row)
 
237
 
 
238
-- should fail, sql identifier cannot be NULL
 
239
select format('INSERT INTO %I VALUES(%L,%L)', NULL, 10, 'Hello');
 
240
ERROR:  null values cannot be formatted as an SQL identifier
 
241
-- check positional placeholders
 
242
select format('%1$s %3$s', 1, 2, 3);
 
243
 format 
 
244
--------
 
245
 1 3
 
246
(1 row)
 
247
 
 
248
select format('%1$s %12$s', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
 
249
 format 
 
250
--------
 
251
 1 12
 
252
(1 row)
 
253
 
 
254
-- should fail
 
255
select format('%1$s %4$s', 1, 2, 3);
 
256
ERROR:  too few arguments for format
 
257
select format('%1$s %13$s', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
 
258
ERROR:  too few arguments for format
 
259
select format('%0$s', 'Hello');
 
260
ERROR:  format specifies argument 0, but arguments are numbered from 1
 
261
select format('%*0$s', 'Hello');
 
262
ERROR:  format specifies argument 0, but arguments are numbered from 1
 
263
select format('%1$', 1);
 
264
ERROR:  unterminated format specifier
 
265
select format('%1$1', 1);
 
266
ERROR:  unterminated format specifier
 
267
-- check mix of positional and ordered placeholders
 
268
select format('Hello %s %1$s %s', 'World', 'Hello again');
 
269
            format             
 
270
-------------------------------
 
271
 Hello World World Hello again
 
272
(1 row)
 
273
 
 
274
select format('Hello %s %s, %2$s %2$s', 'World', 'Hello again');
 
275
                      format                      
 
276
--------------------------------------------------
 
277
 Hello World Hello again, Hello again Hello again
 
278
(1 row)
 
279
 
 
280
-- check variadic labeled arguments
 
281
select format('%s, %s', variadic array['Hello','World']);
 
282
    format    
 
283
--------------
 
284
 Hello, World
 
285
(1 row)
 
286
 
 
287
select format('%s, %s', variadic array[1, 2]);
 
288
 format 
 
289
--------
 
290
 1, 2
 
291
(1 row)
 
292
 
 
293
select format('%s, %s', variadic array[true, false]);
 
294
 format 
 
295
--------
 
296
 t, f
 
297
(1 row)
 
298
 
 
299
select format('%s, %s', variadic array[true, false]::text[]);
 
300
   format    
 
301
-------------
 
302
 true, false
 
303
(1 row)
 
304
 
 
305
-- check variadic with positional placeholders
 
306
select format('%2$s, %1$s', variadic array['first', 'second']);
 
307
    format     
 
308
---------------
 
309
 second, first
 
310
(1 row)
 
311
 
 
312
select format('%2$s, %1$s', variadic array[1, 2]);
 
313
 format 
 
314
--------
 
315
 2, 1
 
316
(1 row)
 
317
 
 
318
-- variadic argument can be NULL, but should not be referenced
 
319
select format('Hello', variadic NULL);
 
320
 format 
 
321
--------
 
322
 Hello
 
323
(1 row)
 
324
 
 
325
-- variadic argument allows simulating more than FUNC_MAX_ARGS parameters
 
326
select format(string_agg('%s',','), variadic array_agg(i))
 
327
from generate_series(1,200) g(i);
 
328
                                                                                                                                                                                                                                                                                                                                                       format                                                                                                                                                                                                                                                                                                                                                        
 
329
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
330
 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200
 
331
(1 row)
 
332
 
 
333
-- check field widths and left, right alignment
 
334
select format('>>%10s<<', 'Hello');
 
335
     format     
 
336
----------------
 
337
 >>     Hello<<
 
338
(1 row)
 
339
 
 
340
select format('>>%10s<<', NULL);
 
341
     format     
 
342
----------------
 
343
 >>          <<
 
344
(1 row)
 
345
 
 
346
select format('>>%10s<<', '');
 
347
     format     
 
348
----------------
 
349
 >>          <<
 
350
(1 row)
 
351
 
 
352
select format('>>%-10s<<', '');
 
353
     format     
 
354
----------------
 
355
 >>          <<
 
356
(1 row)
 
357
 
 
358
select format('>>%-10s<<', 'Hello');
 
359
     format     
 
360
----------------
 
361
 >>Hello     <<
 
362
(1 row)
 
363
 
 
364
select format('>>%-10s<<', NULL);
 
365
     format     
 
366
----------------
 
367
 >>          <<
 
368
(1 row)
 
369
 
 
370
select format('>>%1$10s<<', 'Hello');
 
371
     format     
 
372
----------------
 
373
 >>     Hello<<
 
374
(1 row)
 
375
 
 
376
select format('>>%1$-10I<<', 'Hello');
 
377
     format     
 
378
----------------
 
379
 >>"Hello"   <<
 
380
(1 row)
 
381
 
 
382
select format('>>%2$*1$L<<', 10, 'Hello');
 
383
     format     
 
384
----------------
 
385
 >>   'Hello'<<
 
386
(1 row)
 
387
 
 
388
select format('>>%2$*1$L<<', 10, NULL);
 
389
     format     
 
390
----------------
 
391
 >>      NULL<<
 
392
(1 row)
 
393
 
 
394
select format('>>%2$*1$L<<', -10, NULL);
 
395
     format     
 
396
----------------
 
397
 >>NULL      <<
 
398
(1 row)
 
399
 
 
400
select format('>>%*s<<', 10, 'Hello');
 
401
     format     
 
402
----------------
 
403
 >>     Hello<<
 
404
(1 row)
 
405
 
 
406
select format('>>%*1$s<<', 10, 'Hello');
 
407
     format     
 
408
----------------
 
409
 >>     Hello<<
 
410
(1 row)
 
411
 
 
412
select format('>>%-s<<', 'Hello');
 
413
  format   
 
414
-----------
 
415
 >>Hello<<
 
416
(1 row)
 
417
 
 
418
select format('>>%10L<<', NULL);
 
419
     format     
 
420
----------------
 
421
 >>      NULL<<
 
422
(1 row)
 
423
 
 
424
select format('>>%2$*1$L<<', NULL, 'Hello');
 
425
   format    
 
426
-------------
 
427
 >>'Hello'<<
 
428
(1 row)
 
429
 
 
430
select format('>>%2$*1$L<<', 0, 'Hello');
 
431
   format    
 
432
-------------
 
433
 >>'Hello'<<
 
434
(1 row)
 
435