Robert Haas wrote:
On Mon, Dec 1, 2008 at 10:33 AM, Greg Stark <[EMAIL PROTECTED]> wrote:
How would you parse an input format of just 'SS' ? is there something
ambiguous about '3' ? I don't see anything "bad" about using %d to
output an integer number of seconds.

+1.

It seems to me that it's pretty silly to say that we "know" that the 2
in "01:2:03" is intended to mean 02, but we are somehow confused about
whether the 3 in "01:02:3" is intended to mean 03 or 30.

Yep. It's a fair argument that we shouldn't accept either, but the inconsistency is just wrong. I've committed a patch fixing the inconsistency, by allowing "01:02:3".

Now whether we should forbid both, my opinion is that we shouldn't; that would just unnecessarily brake old applications, and I don't think there's much danger of ambiguity in what "01:2:03" means.

For better or worse, we also allow these more questionable inputs:

postgres=# SELECT to_timestamp('2008/-3/01', 'YYYY/MM/DD');
      to_timestamp
------------------------
 2007-09-01 00:00:00+03
(1 row)

postgres=# SELECT to_timestamp('2008--3-01', 'YYYY-MM-DD');
      to_timestamp
------------------------
 2007-09-01 00:00:00+03
(1 row)

postgres=# SELECT to_timestamp('2008-03', 'YYYY-MM-DD');
      to_timestamp
------------------------
 2008-03-01 00:00:00+02
(1 row)

postgres=# SELECT to_timestamp('2008-03-04-foobar', 'YYYY-MM-DD');
      to_timestamp
------------------------
 2008-03-04 00:00:00+02
(1 row)

The argument for rejecting these is stronger, IMHO, but given that we allowed these in previous releases as well, I don't think we try to forbid them either.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to