Skip to content

Commit 0a42adc

Browse files
committed
Improve numeric overflow error message.
David Fetter
1 parent 45c8ed9 commit 0a42adc

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

src/backend/utils/adt/numeric.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* Copyright (c) 1998-2006, PostgreSQL Global Development Group
1515
*
1616
* IDENTIFICATION
17-
* $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.94 2006/07/14 05:28:28 tgl Exp $
17+
* $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.95 2006/10/03 21:25:55 momjian Exp $
1818
*
1919
*-------------------------------------------------------------------------
2020
*/
@@ -3217,11 +3217,12 @@ apply_typmod(NumericVar *var, int32 typmod)
32173217
ereport(ERROR,
32183218
(errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
32193219
errmsg("numeric field overflow"),
3220-
errdetail("A field with precision %d, scale %d must have an absolute value less than %s%d.",
3220+
errdetail("A field with precision %d, scale %d must round to an absolute value less than %s%d.",
32213221
precision, scale,
32223222
/* Display 10^0 as 1 */
32233223
maxdigits ? "10^" : "",
3224-
maxdigits ? maxdigits : 1)));
3224+
maxdigits ? maxdigits : 1
3225+
)));
32253226
break;
32263227
}
32273228
ddigits -= DEC_DIGITS;

src/test/regress/expected/numeric.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -688,12 +688,12 @@ INSERT INTO fract_only VALUES (1, '0.0');
688688
INSERT INTO fract_only VALUES (2, '0.1');
689689
INSERT INTO fract_only VALUES (3, '1.0'); -- should fail
690690
ERROR: numeric field overflow
691-
DETAIL: A field with precision 4, scale 4 must have an absolute value less than 1.
691+
DETAIL: A field with precision 4, scale 4 must round to an absolute value less than 1.
692692
INSERT INTO fract_only VALUES (4, '-0.9999');
693693
INSERT INTO fract_only VALUES (5, '0.99994');
694694
INSERT INTO fract_only VALUES (6, '0.99995'); -- should fail
695695
ERROR: numeric field overflow
696-
DETAIL: A field with precision 4, scale 4 must have an absolute value less than 1.
696+
DETAIL: A field with precision 4, scale 4 must round to an absolute value less than 1.
697697
INSERT INTO fract_only VALUES (7, '0.00001');
698698
INSERT INTO fract_only VALUES (8, '0.00017');
699699
SELECT * FROM fract_only;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy