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);