Skip to content

Commit 09e3531

Browse files
committed
Add more tests for money type
Add tests for functions currently not covered at all. Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com>
1 parent 6fc5479 commit 09e3531

File tree

2 files changed

+110
-2
lines changed

2 files changed

+110
-2
lines changed

src/test/regress/expected/money.out

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,84 @@ SELECT m - '123.45' FROM money_data;
2727
-$0.45
2828
(1 row)
2929

30+
SELECT m / '2'::money FROM money_data;
31+
?column?
32+
----------
33+
61.5
34+
(1 row)
35+
3036
SELECT m * 2 FROM money_data;
3137
?column?
3238
----------
3339
$246.00
3440
(1 row)
3541

42+
SELECT 2 * m FROM money_data;
43+
?column?
44+
----------
45+
$246.00
46+
(1 row)
47+
3648
SELECT m / 2 FROM money_data;
3749
?column?
3850
----------
3951
$61.50
4052
(1 row)
4153

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::float8 FROM money_data;
73+
?column?
74+
----------
75+
$246.00
76+
(1 row)
77+
78+
SELECT 2::float8 * m FROM money_data;
79+
?column?
80+
----------
81+
$246.00
82+
(1 row)
83+
84+
SELECT m / 2::float8 FROM money_data;
85+
?column?
86+
----------
87+
$61.50
88+
(1 row)
89+
90+
SELECT m * 2::float4 FROM money_data;
91+
?column?
92+
----------
93+
$246.00
94+
(1 row)
95+
96+
SELECT 2::float4 * m FROM money_data;
97+
?column?
98+
----------
99+
$246.00
100+
(1 row)
101+
102+
SELECT m / 2::float4 FROM money_data;
103+
?column?
104+
----------
105+
$61.50
106+
(1 row)
107+
42108
-- All true
43109
SELECT m = '$123.00' FROM money_data;
44110
?column?
@@ -275,7 +341,7 @@ SELECT '92233720368547758.075'::money;
275341
ERROR: value "92233720368547758.075" is out of range for type money
276342
LINE 1: SELECT '92233720368547758.075'::money;
277343
^
278-
-- Cast int4/int8 to money
344+
-- Cast int4/int8/numeric to money
279345
SELECT 1234567890::money;
280346
money
281347
-------------------
@@ -318,6 +384,12 @@ SELECT 12345678901234567::int8::money;
318384
$12,345,678,901,234,567.00
319385
(1 row)
320386

387+
SELECT 12345678901234567::numeric::money;
388+
money
389+
----------------------------
390+
$12,345,678,901,234,567.00
391+
(1 row)
392+
321393
SELECT (-1234567890)::int4::money;
322394
money
323395
--------------------
@@ -330,3 +402,22 @@ SELECT (-12345678901234567)::int8::money;
330402
-$12,345,678,901,234,567.00
331403
(1 row)
332404

405+
SELECT (-12345678901234567)::numeric::money;
406+
money
407+
-----------------------------
408+
-$12,345,678,901,234,567.00
409+
(1 row)
410+
411+
-- Cast from money
412+
SELECT '12345678901234567'::money::numeric;
413+
numeric
414+
----------------------
415+
12345678901234567.00
416+
(1 row)
417+
418+
SELECT '-12345678901234567'::money::numeric;
419+
numeric
420+
-----------------------
421+
-12345678901234567.00
422+
(1 row)
423+

src/test/regress/sql/money.sql

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,19 @@ SELECT * FROM money_data;
99
SELECT m + '123' FROM money_data;
1010
SELECT m + '123.45' FROM money_data;
1111
SELECT m - '123.45' FROM money_data;
12+
SELECT m / '2'::money FROM money_data;
1213
SELECT m * 2 FROM money_data;
14+
SELECT 2 * m FROM money_data;
1315
SELECT m / 2 FROM money_data;
16+
SELECT m * 2::int2 FROM money_data;
17+
SELECT 2::int2 * m FROM money_data;
18+
SELECT m / 2::int2 FROM money_data;
19+
SELECT m * 2::float8 FROM money_data;
20+
SELECT 2::float8 * m FROM money_data;
21+
SELECT m / 2::float8 FROM money_data;
22+
SELECT m * 2::float4 FROM money_data;
23+
SELECT 2::float4 * m FROM money_data;
24+
SELECT m / 2::float4 FROM money_data;
1425

1526
-- All true
1627
SELECT m = '$123.00' FROM money_data;
@@ -83,13 +94,19 @@ SELECT '92233720368547758.08'::money;
8394
SELECT '-92233720368547758.085'::money;
8495
SELECT '92233720368547758.075'::money;
8596

86-
-- Cast int4/int8 to money
97+
-- Cast int4/int8/numeric to money
8798
SELECT 1234567890::money;
8899
SELECT 12345678901234567::money;
89100
SELECT (-12345)::money;
90101
SELECT (-1234567890)::money;
91102
SELECT (-12345678901234567)::money;
92103
SELECT 1234567890::int4::money;
93104
SELECT 12345678901234567::int8::money;
105+
SELECT 12345678901234567::numeric::money;
94106
SELECT (-1234567890)::int4::money;
95107
SELECT (-12345678901234567)::int8::money;
108+
SELECT (-12345678901234567)::numeric::money;
109+
110+
-- Cast from money
111+
SELECT '12345678901234567'::money::numeric;
112+
SELECT '-12345678901234567'::money::numeric;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy