|
|
|
|
@ -660,3 +660,37 @@ SELECT t1.id1, t1.result, t2.expected |
|
|
|
|
-----+--------+---------- |
|
|
|
|
(0 rows) |
|
|
|
|
|
|
|
|
|
-- ****************************** |
|
|
|
|
-- * miscellaneous checks for things that have been broken in the past... |
|
|
|
|
-- ****************************** |
|
|
|
|
-- numeric AVG used to fail on some platforms |
|
|
|
|
SELECT AVG(val) FROM num_data; |
|
|
|
|
avg |
|
|
|
|
---------------------- |
|
|
|
|
-13430913.5922423207 |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
-- Check for appropriate rounding and overflow |
|
|
|
|
CREATE TABLE fract_only (id int, val numeric(4,4)); |
|
|
|
|
INSERT INTO fract_only VALUES (1, '0.0'); |
|
|
|
|
INSERT INTO fract_only VALUES (2, '0.1'); |
|
|
|
|
INSERT INTO fract_only VALUES (3, '1.0'); -- should fail |
|
|
|
|
ERROR: overflow on numeric ABS(value) >= 10^0 for field with precision 4 scale 4 |
|
|
|
|
INSERT INTO fract_only VALUES (4, '-0.9999'); |
|
|
|
|
INSERT INTO fract_only VALUES (5, '0.99994'); |
|
|
|
|
INSERT INTO fract_only VALUES (6, '0.99995'); -- should fail |
|
|
|
|
ERROR: overflow on numeric ABS(value) >= 10^0 for field with precision 4 scale 4 |
|
|
|
|
INSERT INTO fract_only VALUES (7, '0.00001'); |
|
|
|
|
INSERT INTO fract_only VALUES (8, '0.00017'); |
|
|
|
|
SELECT * FROM fract_only; |
|
|
|
|
id | val |
|
|
|
|
----+--------- |
|
|
|
|
1 | 0.0000 |
|
|
|
|
2 | 0.1000 |
|
|
|
|
4 | -0.9999 |
|
|
|
|
5 | 0.9999 |
|
|
|
|
7 | 0.0000 |
|
|
|
|
8 | 0.0002 |
|
|
|
|
(6 rows) |
|
|
|
|
|
|
|
|
|
DROP TABLE fract_only; |
|
|
|
|
|