Re: [HACKERS] Bug in to_timestamp().

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>
Cc: Artur Zakirov <a(dot)zakirov(at)postgrespro(dot)ru>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>, amul sul <sulamul(at)gmail(dot)com>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Alex Ignatov <a(dot)ignatov(at)postgrespro(dot)ru>, Bruce Momjian <bruce(at)momjian(dot)us>, amul sul <sul_amul(at)yahoo(dot)co(dot)in>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [HACKERS] Bug in to_timestamp().
Date: 2018-09-04 22:21:54
Message-ID: CAKFQuwaavBMaegu=W=mKC1gZaYoWKwzT7hRfTQ8mqmXWYQBrGw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Sep 3, 2018 at 2:30 PM, Alexander Korotkov <
a(dot)korotkov(at)postgrespro(dot)ru> wrote:

> The current version of patch doesn't really distinguish spaces and
> delimiters in format string in non-FX mode. So, spaces and delimiters
> are forming single group. For me Oracle behavior is ridiculous at
> least because it doesn't allow cases when input string exactly matches
> format string.
>
> This one fails:
> SELECT to_timestamp('2018- -01 02', 'YYYY- -MM DD') FROM dual
>

Related to below - since this works today it should continue to work. I
was under the wrong impression that we followed their behavior today and
were pondering deviating from it because of its ridiculousness.

> > The couple of regression tests that change do so for the better. It
> would be illuminating to set this up as two patches though, one introducing
> all of the new regression tests against the current code and then a second
> patch with the changed behavior with only the affected tests.
>
> OK, here you go. 0001-to_timestamp-regression-test-v17.patch
> introduces changes in regression tests and their output for current
> master, while 0002-to_timestamp-format-checking-v17.patch contain
> changes to to_timestamp itself.
>
>
From those results the question is how important is it to force the
following breakage on our users (i.e., introduce FX exact symbol matching):

SELECT to_timestamp('97/Feb/16', 'FXYY:Mon:DD');
- to_timestamp
-------------------------------
- Sun Feb 16 00:00:00 1997 PST
-(1 row)
-
+ERROR: unexpected character "/", expected character ":"
+HINT: In FX mode, punctuation in the input string must exactly match the
format string.

There seemed to be some implicit approvals of this breakage some 30 emails
and 10 months ago but given that this is the only change from a correct
result to a failure I'd like to officially put it out there for
opinion/vote gathering. Mine is a -1; though keeping the distinction
between space and non-alphanumeric characters is expected.

David J.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2018-09-04 22:44:36 Re: Bug fix for glibc broke freebsd build in REL_11_STABLE
Previous Message Andres Freund 2018-09-04 22:16:27 Re: Bug fix for glibc broke freebsd build in REL_11_STABLE