Add some examples to numeric regress test to verify that recently-fixed
problems are indeed fixed.
This commit is contained in:
parent
3cb8c8da68
commit
b0b3187bb4
@ -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;
|
||||
|
@ -634,3 +634,21 @@ SELECT t1.id1, t1.result, t2.expected
|
||||
WHERE t1.id1 = t2.id
|
||||
AND t1.result != t2.expected;
|
||||
|
||||
-- ******************************
|
||||
-- * 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;
|
||||
|
||||
-- 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
|
||||
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
|
||||
INSERT INTO fract_only VALUES (7, '0.00001');
|
||||
INSERT INTO fract_only VALUES (8, '0.00017');
|
||||
SELECT * FROM fract_only;
|
||||
DROP TABLE fract_only;
|
||||
|
Loading…
Reference in New Issue
Block a user