When integer datetimes are in use, the legal range of the "date" type
actually exceeds that of the "timestamp" type. However, the cast from
date => timestamp fails to take this into account:
postgres=# select '01-01-5874896'::date::timestamp;
timestamp
----------------------------
29355-07-05 15:41:44.48384
(1 row)
The cast works correctly with FP-based datetimes.
Should be simple to fix, but I won't have the free cycles to do it for a
little while, so if anyone wants to take a shot at it in the meanwhile,
they are more than welcome...
-Neil