Peter Eisentraut <peter_e@gmx.net> writes:
> This result from AIX/PPC can't be good, however:
Hmm. The test in int84div is
/* * Overflow check. The only possible overflow case is for arg1 = * INT64_MIN, arg2 = -1, where the
correctresult is -INT64_MIN, which * can't be represented on a two's-complement machine. */ if (arg2 == -1 &&
arg1< 0 && result < 0) ereport(ERROR, (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
errmsg("bigintout of range")));
Maybe we could use "result <= 0" for the third check? Surely a zero
result cannot be correct given the first two checks.
The other integer division functions should be looked at too.
regards, tom lane