diff options
-rw-r--r-- | doc/src/sgml/datatype.sgml | 4 | ||||
-rw-r--r-- | src/backend/utils/adt/date.c | 7 |
2 files changed, 8 insertions, 3 deletions
diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index 6ca4e37c00d..78d606bf294 100644 --- a/doc/src/sgml/datatype.sgml +++ b/doc/src/sgml/datatype.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.154.4.1 2005/01/22 23:05:47 momjian Exp $ +$PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.154.4.2 2006/02/09 03:40:42 tgl Exp $ --> <chapter id="datatype"> @@ -1358,7 +1358,7 @@ SELECT b, char_length(b) FROM test2; <entry>4 bytes</entry> <entry>dates only</entry> <entry>4713 BC</entry> - <entry>32767 AD</entry> + <entry>5874897 AD</entry> <entry>1 day</entry> </row> <row> diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c index 0e2eb954656..3e8ab71af54 100644 --- a/src/backend/utils/adt/date.c +++ b/src/backend/utils/adt/date.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.104.4.2 2005/05/26 02:10:02 neilc Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.104.4.3 2006/02/09 03:40:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -96,6 +96,11 @@ date_in(PG_FUNCTION_ARGS) 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); |