]> granicus.if.org Git - postgresql/blob - src/test/regress/expected/money.out
0cc69f925f50122f59b6462a2709c6a939b810f5
[postgresql] / src / test / regress / expected / money.out
1 --
2 -- MONEY
3 --
4 CREATE TABLE money_data (m money);
5 INSERT INTO money_data VALUES ('123');
6 SELECT * FROM money_data;
7     m    
8 ---------
9  $123.00
10 (1 row)
11
12 SELECT m + '123' FROM money_data;
13  ?column? 
14 ----------
15   $246.00
16 (1 row)
17
18 SELECT m + '123.45' FROM money_data;
19  ?column? 
20 ----------
21   $246.45
22 (1 row)
23
24 SELECT m - '123.45' FROM money_data;
25  ?column? 
26 ----------
27    -$0.45
28 (1 row)
29
30 SELECT m / '2'::money FROM money_data;
31  ?column? 
32 ----------
33      61.5
34 (1 row)
35
36 SELECT m * 2 FROM money_data;
37  ?column? 
38 ----------
39   $246.00
40 (1 row)
41
42 SELECT 2 * m FROM money_data;
43  ?column? 
44 ----------
45   $246.00
46 (1 row)
47
48 SELECT m / 2 FROM money_data;
49  ?column? 
50 ----------
51    $61.50
52 (1 row)
53
54 SELECT m * 2::int2 FROM money_data;
55  ?column? 
56 ----------
57   $246.00
58 (1 row)
59
60 SELECT 2::int2 * m FROM money_data;
61  ?column? 
62 ----------
63   $246.00
64 (1 row)
65
66 SELECT m / 2::int2 FROM money_data;
67  ?column? 
68 ----------
69    $61.50
70 (1 row)
71
72 SELECT m * 2::int8 FROM money_data;
73  ?column? 
74 ----------
75   $246.00
76 (1 row)
77
78 SELECT 2::int8 * m FROM money_data;
79  ?column? 
80 ----------
81   $246.00
82 (1 row)
83
84 SELECT m / 2::int8 FROM money_data;
85  ?column? 
86 ----------
87    $61.50
88 (1 row)
89
90 SELECT m * 2::float8 FROM money_data;
91  ?column? 
92 ----------
93   $246.00
94 (1 row)
95
96 SELECT 2::float8 * m FROM money_data;
97  ?column? 
98 ----------
99   $246.00
100 (1 row)
101
102 SELECT m / 2::float8 FROM money_data;
103  ?column? 
104 ----------
105    $61.50
106 (1 row)
107
108 SELECT m * 2::float4 FROM money_data;
109  ?column? 
110 ----------
111   $246.00
112 (1 row)
113
114 SELECT 2::float4 * m FROM money_data;
115  ?column? 
116 ----------
117   $246.00
118 (1 row)
119
120 SELECT m / 2::float4 FROM money_data;
121  ?column? 
122 ----------
123    $61.50
124 (1 row)
125
126 -- All true
127 SELECT m = '$123.00' FROM money_data;
128  ?column? 
129 ----------
130  t
131 (1 row)
132
133 SELECT m != '$124.00' FROM money_data;
134  ?column? 
135 ----------
136  t
137 (1 row)
138
139 SELECT m <= '$123.00' FROM money_data;
140  ?column? 
141 ----------
142  t
143 (1 row)
144
145 SELECT m >= '$123.00' FROM money_data;
146  ?column? 
147 ----------
148  t
149 (1 row)
150
151 SELECT m < '$124.00' FROM money_data;
152  ?column? 
153 ----------
154  t
155 (1 row)
156
157 SELECT m > '$122.00' FROM money_data;
158  ?column? 
159 ----------
160  t
161 (1 row)
162
163 -- All false
164 SELECT m = '$123.01' FROM money_data;
165  ?column? 
166 ----------
167  f
168 (1 row)
169
170 SELECT m != '$123.00' FROM money_data;
171  ?column? 
172 ----------
173  f
174 (1 row)
175
176 SELECT m <= '$122.99' FROM money_data;
177  ?column? 
178 ----------
179  f
180 (1 row)
181
182 SELECT m >= '$123.01' FROM money_data;
183  ?column? 
184 ----------
185  f
186 (1 row)
187
188 SELECT m > '$124.00' FROM money_data;
189  ?column? 
190 ----------
191  f
192 (1 row)
193
194 SELECT m < '$122.00' FROM money_data;
195  ?column? 
196 ----------
197  f
198 (1 row)
199
200 SELECT cashlarger(m, '$124.00') FROM money_data;
201  cashlarger 
202 ------------
203     $124.00
204 (1 row)
205
206 SELECT cashsmaller(m, '$124.00') FROM money_data;
207  cashsmaller 
208 -------------
209      $123.00
210 (1 row)
211
212 SELECT cash_words(m) FROM money_data;
213                    cash_words                    
214 -------------------------------------------------
215  One hundred twenty three dollars and zero cents
216 (1 row)
217
218 SELECT cash_words(m + '1.23') FROM money_data;
219                        cash_words                       
220 --------------------------------------------------------
221  One hundred twenty four dollars and twenty three cents
222 (1 row)
223
224 DELETE FROM money_data;
225 INSERT INTO money_data VALUES ('$123.45');
226 SELECT * FROM money_data;
227     m    
228 ---------
229  $123.45
230 (1 row)
231
232 DELETE FROM money_data;
233 INSERT INTO money_data VALUES ('$123.451');
234 SELECT * FROM money_data;
235     m    
236 ---------
237  $123.45
238 (1 row)
239
240 DELETE FROM money_data;
241 INSERT INTO money_data VALUES ('$123.454');
242 SELECT * FROM money_data;
243     m    
244 ---------
245  $123.45
246 (1 row)
247
248 DELETE FROM money_data;
249 INSERT INTO money_data VALUES ('$123.455');
250 SELECT * FROM money_data;
251     m    
252 ---------
253  $123.46
254 (1 row)
255
256 DELETE FROM money_data;
257 INSERT INTO money_data VALUES ('$123.456');
258 SELECT * FROM money_data;
259     m    
260 ---------
261  $123.46
262 (1 row)
263
264 DELETE FROM money_data;
265 INSERT INTO money_data VALUES ('$123.459');
266 SELECT * FROM money_data;
267     m    
268 ---------
269  $123.46
270 (1 row)
271
272 -- input checks
273 SELECT '1234567890'::money;
274        money       
275 -------------------
276  $1,234,567,890.00
277 (1 row)
278
279 SELECT '12345678901234567'::money;
280            money            
281 ----------------------------
282  $12,345,678,901,234,567.00
283 (1 row)
284
285 SELECT '123456789012345678'::money;
286 ERROR:  value "123456789012345678" is out of range for type money
287 LINE 1: SELECT '123456789012345678'::money;
288                ^
289 SELECT '9223372036854775807'::money;
290 ERROR:  value "9223372036854775807" is out of range for type money
291 LINE 1: SELECT '9223372036854775807'::money;
292                ^
293 SELECT '-12345'::money;
294     money    
295 -------------
296  -$12,345.00
297 (1 row)
298
299 SELECT '-1234567890'::money;
300        money        
301 --------------------
302  -$1,234,567,890.00
303 (1 row)
304
305 SELECT '-12345678901234567'::money;
306             money            
307 -----------------------------
308  -$12,345,678,901,234,567.00
309 (1 row)
310
311 SELECT '-123456789012345678'::money;
312 ERROR:  value "-123456789012345678" is out of range for type money
313 LINE 1: SELECT '-123456789012345678'::money;
314                ^
315 SELECT '-9223372036854775808'::money;
316 ERROR:  value "-9223372036854775808" is out of range for type money
317 LINE 1: SELECT '-9223372036854775808'::money;
318                ^
319 -- special characters
320 SELECT '(1)'::money;
321  money  
322 --------
323  -$1.00
324 (1 row)
325
326 SELECT '($123,456.78)'::money;
327     money     
328 --------------
329  -$123,456.78
330 (1 row)
331
332 -- documented minimums and maximums
333 SELECT '-92233720368547758.08'::money;
334             money            
335 -----------------------------
336  -$92,233,720,368,547,758.08
337 (1 row)
338
339 SELECT '92233720368547758.07'::money;
340            money            
341 ----------------------------
342  $92,233,720,368,547,758.07
343 (1 row)
344
345 SELECT '-92233720368547758.09'::money;
346 ERROR:  value "-92233720368547758.09" is out of range for type money
347 LINE 1: SELECT '-92233720368547758.09'::money;
348                ^
349 SELECT '92233720368547758.08'::money;
350 ERROR:  value "92233720368547758.08" is out of range for type money
351 LINE 1: SELECT '92233720368547758.08'::money;
352                ^
353 -- rounding
354 SELECT '-92233720368547758.085'::money;
355 ERROR:  value "-92233720368547758.085" is out of range for type money
356 LINE 1: SELECT '-92233720368547758.085'::money;
357                ^
358 SELECT '92233720368547758.075'::money;
359 ERROR:  value "92233720368547758.075" is out of range for type money
360 LINE 1: SELECT '92233720368547758.075'::money;
361                ^
362 -- Cast int4/int8/numeric to money
363 SELECT 1234567890::money;
364        money       
365 -------------------
366  $1,234,567,890.00
367 (1 row)
368
369 SELECT 12345678901234567::money;
370            money            
371 ----------------------------
372  $12,345,678,901,234,567.00
373 (1 row)
374
375 SELECT (-12345)::money;
376     money    
377 -------------
378  -$12,345.00
379 (1 row)
380
381 SELECT (-1234567890)::money;
382        money        
383 --------------------
384  -$1,234,567,890.00
385 (1 row)
386
387 SELECT (-12345678901234567)::money;
388             money            
389 -----------------------------
390  -$12,345,678,901,234,567.00
391 (1 row)
392
393 SELECT 1234567890::int4::money;
394        money       
395 -------------------
396  $1,234,567,890.00
397 (1 row)
398
399 SELECT 12345678901234567::int8::money;
400            money            
401 ----------------------------
402  $12,345,678,901,234,567.00
403 (1 row)
404
405 SELECT 12345678901234567::numeric::money;
406            money            
407 ----------------------------
408  $12,345,678,901,234,567.00
409 (1 row)
410
411 SELECT (-1234567890)::int4::money;
412        money        
413 --------------------
414  -$1,234,567,890.00
415 (1 row)
416
417 SELECT (-12345678901234567)::int8::money;
418             money            
419 -----------------------------
420  -$12,345,678,901,234,567.00
421 (1 row)
422
423 SELECT (-12345678901234567)::numeric::money;
424             money            
425 -----------------------------
426  -$12,345,678,901,234,567.00
427 (1 row)
428
429 -- Cast from money
430 SELECT '12345678901234567'::money::numeric;
431        numeric        
432 ----------------------
433  12345678901234567.00
434 (1 row)
435
436 SELECT '-12345678901234567'::money::numeric;
437         numeric        
438 -----------------------
439  -12345678901234567.00
440 (1 row)
441