The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/13/datatype-numeric.html Description:
https://www.postgresql.org/docs/13/datatype-numeric.html says that the range of a numeric type integer is -2147483648 to +2147483647 but PGTYPESnumeric_to_int considers -2147483648 (a perfectly valid 32-bit integer) to be invalid because it compares to -INT_MAX instead of INT_MIN or (-INT_MAX - 1). This goes back to the initial commit in the git repo for src/interfaces/ecpg/pgtypeslib/numeric.c. And doc/src/sgml/ecpg.sgml documents the min being -INT_MAX.