OSDN Git Service

Add some examples to numeric regress test to verify that recently-fixed
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 15 Jan 2000 23:44:17 +0000 (23:44 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 15 Jan 2000 23:44:17 +0000 (23:44 +0000)
problems are indeed fixed.

src/test/regress/expected/numeric.out
src/test/regress/sql/numeric.sql

index 0e17a35..1f7901c 100644 (file)
@@ -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;
index fdd7ade..7e9f333 100644 (file)
@@ -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;