Now that we have control of our own timezone code, one of the first
things I'd like to do with it is replace time_t with pg_time_t defined
as (signed) int8. This would allow us to handle timezone calculations
outside the 1904-2038 range, and in particular eliminate the bizarre
behaviors that currently exist for timestamps near either of those
boundaries.
On compilers that don't have an int8 type available, the behavior would
be the same as now. That's an ever-smaller proportion of platforms
though.
The only downside I can see is that our zic files would be incompatible
with everyone else's. However, it's a dead certainty that everyone else
will have to go to 8-byte values in zic files sooner or later, so
they'll catch up with us eventually.
Any objections?
regards, tom lane