diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c index c722e47e35..7985a644f3 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.150 2010/01/02 16:57:53 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.151 2010/02/18 04:31:16 itagaki Exp $ * *------------------------------------------------------------------------- */ @@ -208,8 +208,10 @@ date_recv(PG_FUNCTION_ARGS) result = (DateADT) pq_getmsgint(buf, sizeof(DateADT)); /* Limit to the same range that date_in() accepts. */ - if (result < -POSTGRES_EPOCH_JDATE || - result >= JULIAN_MAX - POSTGRES_EPOCH_JDATE) + if (DATE_NOT_FINITE(result)) + /* ok */ ; + else if (result < -POSTGRES_EPOCH_JDATE || + result >= JULIAN_MAX - POSTGRES_EPOCH_JDATE) ereport(ERROR, (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), errmsg("date out of range")));