]> granicus.if.org Git - postgresql/commitdiff
Improve numeric overflow error message.
authorBruce Momjian <bruce@momjian.us>
Tue, 3 Oct 2006 21:25:56 +0000 (21:25 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 3 Oct 2006 21:25:56 +0000 (21:25 +0000)
David Fetter

src/backend/utils/adt/numeric.c
src/test/regress/expected/numeric.out

index fb15a6222fcc53c21208c5e49129a6ebbdf6b98b..6d77c49c12374b41d8e0903a9aef52a70dc96a39 100644 (file)
@@ -14,7 +14,7 @@
  * Copyright (c) 1998-2006, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.94 2006/07/14 05:28:28 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.95 2006/10/03 21:25:55 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -3217,11 +3217,12 @@ apply_typmod(NumericVar *var, int32 typmod)
                                        ereport(ERROR,
                                                        (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
                                                         errmsg("numeric field overflow"),
-                                                        errdetail("A field with precision %d, scale %d must have an absolute value less than %s%d.",
+                                                        errdetail("A field with precision %d, scale %d must round to an absolute value less than %s%d.",
                                                                           precision, scale,
                                                                           /* Display 10^0 as 1 */
                                                                           maxdigits ? "10^" : "",
-                                                                          maxdigits ? maxdigits : 1)));
+                                                                          maxdigits ? maxdigits : 1
+                                                                          )));
                                break;
                        }
                        ddigits -= DEC_DIGITS;
index 08a4841458c097bab602846251c22ed6829de7a6..96c70a8a0978ceb15cf9c1a061b419f1a3945516 100644 (file)
@@ -688,12 +688,12 @@ 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:  numeric field overflow
-DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1.
+DETAIL:  A field with precision 4, scale 4 must round to an absolute value less than 1.
 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:  numeric field overflow
-DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1.
+DETAIL:  A field with precision 4, scale 4 must round to an absolute value less than 1.
 INSERT INTO fract_only VALUES (7, '0.00001');
 INSERT INTO fract_only VALUES (8, '0.00017');
 SELECT * FROM fract_only;