diff --git a/src/backend/utils/adt/cash.c b/src/backend/utils/adt/cash.c index f7e78fa105..c243605277 100644 --- a/src/backend/utils/adt/cash.c +++ b/src/backend/utils/adt/cash.c @@ -351,6 +351,11 @@ cash_out(PG_FUNCTION_ARGS) if (value < 0) { + if (value == LONG_MIN) + ereport(ERROR, + (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("out of range for type money"))); + /* make the amount positive for digit-reconstruction loop */ value = -value; /* set up formatting data */