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 <[email protected]>
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

+92-1
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

+18-1
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)