(cross posted to -hackers, just in case...)
> or just to make it crystal clear,
> select 'foo now#&%!@bar'::date;
Oh yeah. From the 1.0x days of Postgres95 (and probably earlier) the
date/time parser ignored any part of a date string it didn't understand.
That has been the case, more or less, until select date 'now' ;)
As you might imagine, that could lead to Really Bad Errors, such as
ignoring mistyped time zones. So for 7.2 fields are not ignored, unless
they are on the short list of strings which have been explicitly ignored
forever. For example, 'abstime' can be inside a date string without
trouble, to support compatibility with the argument 'Invalid Abstime',
which apparently was actually emitted by Postgres or Postgres95 (or
maybe someone thought it may be someday. Who knows??!).
Anyway, the parsing has been tightened up a bit. btw, there are some new
features in the parser in addition to this, such as supporting more
varied forms of ISO-8601 dates and times.
- Thomas