diff -cprN head/src/backend/utils/adt/date.c work/src/backend/utils/adt/date.c *** head/src/backend/utils/adt/date.c 2010-01-04 09:10:26.638773000 +0900 --- work/src/backend/utils/adt/date.c 2010-02-18 12:23:36.150736064 +0900 *************** date_recv(PG_FUNCTION_ARGS) *** 208,215 **** 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) ereport(ERROR, (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), errmsg("date out of range"))); --- 208,217 ---- result = (DateADT) pq_getmsgint(buf, sizeof(DateADT)); /* Limit to the same range that date_in() accepts. */ ! 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")));