Index: doc/src/sgml/datatype.sgml =================================================================== RCS file: /projects/cvsroot/pgsql/doc/src/sgml/datatype.sgml,v retrieving revision 1.163 diff -c -r1.163 datatype.sgml *** doc/src/sgml/datatype.sgml 22 Oct 2005 19:33:57 -0000 1.163 --- doc/src/sgml/datatype.sgml 5 Dec 2005 08:30:22 -0000 *************** *** 1360,1366 **** 4 bytes dates only 4713 BC ! 32767 AD 1 day --- 1360,1366 ---- 4 bytes dates only 4713 BC ! 5874897 AD 1 day Index: src/backend/utils/adt/date.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/date.c,v retrieving revision 1.122 diff -c -r1.122 date.c *** src/backend/utils/adt/date.c 15 Oct 2005 02:49:28 -0000 1.122 --- src/backend/utils/adt/date.c 5 Dec 2005 08:30:22 -0000 *************** *** 97,102 **** --- 97,107 ---- break; } + if (!IS_VALID_JULIAN(tm->tm_year, tm->tm_mon, tm->tm_mday)) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("date out of range: \"%s\"", str))); + date = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - POSTGRES_EPOCH_JDATE; PG_RETURN_DATEADT(date);