Improve numeric overflow error message.
David Fetter
This commit is contained in:
parent
45c8ed96b9
commit
0a42adcc32
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user