Re: [HACKERS] Bug in to_timestamp().
Artur Zakirov <a.zakirov@postgrespro.ru>
From: Arthur Zakirov <a.zakirov@postgrespro.ru>
To: Dmitry Dolgov <9erthalion6@gmail.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Thomas Munro <thomas.munro@enterprisedb.com>, Tom Lane <tgl@sss.pgh.pa.us>, amul sul <sulamul@gmail.com>, Pavel Stehule <pavel.stehule@gmail.com>, "David G. Johnston" <david.g.johnston@gmail.com>, Alex Ignatov <a.ignatov@postgrespro.ru>, Bruce Momjian <bruce@momjian.us>, amul sul <sul_amul@yahoo.co.in>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2018-02-12T11:49:45Z
Lists: pgsql-hackers
Attachments
- 0001-to-timestamp-format-checking-v11.patch (text/plain) patch v11-0001
Hello, On Fri, Feb 09, 2018 at 04:31:14PM +0100, Dmitry Dolgov wrote: > I went through this thread, and want to summarize a bit: > > From what I see this patch addresses most important concerns that were > mentioned in the thread, i.e. to make `to_timestamp` less confusing and be > close to Oracles behavior. The code itself looks clear and sufficient, with the > required documentation and green tests. Thank you for reviewing! > Looks like there are just two questions left so far: > > * I've noticed what I think a difference between current that was introduced in > this patch and Oracle. In the following case we can have any number of spaces > after a separator `+` in the input string > ... > But no spaces before it (it actually depends on how many separators do we have > in the format string) > ... > Judging from this http://rextester.com/l/oracle_online_compiler in Oracle it's > possible to have any number of spaces before or after `+` independently from > the number of separators in an input string. Is it intended? Yes, I somehow missed it. I changed the behaviour of separator characters in format string. They are greedy now and eat whitespaces before a separator character in an input string. I suppose that there should be no such problems as in [1]. > * About usage of locale dependent functions e.g. `isalpha`. Yes, looks like > it's better to have locale-agnostic implementation, but then I'm confused - all > functions except `isdigit`/`isxdigit` are locale-dependent, including > `isspace`, which is also in use. I returned is_separator_char() function for now. 1 - https://www.postgresql.org/message-id/20180112125848.GA32559%40zakirov.localdomain -- Arthur Zakirov Postgres Professional: http://www.postgrespro.com Russian Postgres Company
Commits
-
Improve behavior of to_timestamp()/to_date() functions
- cf984672427e 12.0 landed
-
Implement TZH and TZM timestamp format patterns
- 11b623dd0a2c 11.0 cited
-
as attache of this mail is patch (to the main tree) with to_char's
- b866d2e2d794 7.1.1 cited