I've been thinking about the complaint here:
http://archives.postgresql.org/pgsql-general/2008-07/msg00201.php
and I think that the real issue boils down to the fact that timestamp
input checks a name against the timezone abbrevs list first, and the
zic database second; whereas the various forms of AT TIME ZONE
do the lookup in the other order. I am not sure what the original
rationale for that behavior was, if indeed it was thought through
at all --- but what I think now is we should change AT TIME ZONE to
check for abbrevs first. Consistency suggests that both lookups
should produce the same result, and given that timestamp input is
far more heavily used than AT TIME ZONE, changing the behavior of
the latter seems safest. I'm inclined to think that the timestamp
input behavior is more correct anyway: to me "midnight EST" means
midnight standard time, regardless of whether daylight savings
time is in force or not.
Should we consider this a bug and back-patch it, or just fix it
for 8.4 and later?
regards, tom lane