Andrew Kroeger <andrew@xxxxxxxxxxxxxxxxxx> writes: > With the table definitions you posted, one of the first things I noticed > was that the default value for an integer column was a bigint value. I > did some quick 32-bit math and found that the smallest legal 32-bit > integer value is -2147483648, not -2147483684 (notice the last 2 numbers > are transposed). Oooh, good catch, but 7.4 seems to notice the overflow all right: regression=# create temp table foo(f1 int default -2147483684::bigint); CREATE TABLE regression=# insert into foo default values; ERROR: integer out of range regression=# select version(); version ---------------------------------------------------------------- PostgreSQL 7.4.17 on hppa-hp-hpux10.20, compiled by GCC 2.95.3 (1 row) So I think we can conclude that the OP never actually uses this default. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate