Re: Allow to_date() and to_timestamp() to accept localized names
Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
From: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
To: Mark Dilger <mark.dilger@enterprisedb.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Alvaro Herrera <alvherre@2ndquadrant.com>,
Arthur Zakirov <zaartur@gmail.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-01-28T15:47:27Z
Lists: pgsql-hackers
On Tue, Jan 28, 2020 at 4:06 PM Mark Dilger <mark.dilger@enterprisedb.com> wrote: > > I’m not insisting, just asking about the design. If it only works with > one name supported per weekday per language, and per month per language, > I’m not going to object. I was just curious if you were going to support > multiple names anyway, and if that made the question about the Greek case > folding less pressing. > > This patch targets to do something symmetrical to to_char(), which will just return a single value. The issue with the greek locale is that it cannot hold this equivalent behaviour, as in: postgres=# select to_date(to_char(now(), 'TMMONTH'), 'TMMONTH'); ERROR: invalid value "ΙΑΝΟΥΆΡΙΟΣ" for "MONTH" Because of the particular behaviour sigma (Σσς) casing has, which is also user visible with a lower(). > > > %E* %O* > > POSIX locale extensions. The sequences %Ec %EC %Ex %EX %Ey > %EY %Od %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy are supposed to > provide alternate representations. > > > > Additionally %OB implemented to represent alternative months > names (used standalone, without day mentioned). > > This is the part I haven’t played with, but it sounds like it can handle > at least one alternate name. Perhaps you can get the alternates this way? > > This looks like a POSIX feature that some systems might not like (Windows [1]). But if this is something that the patch should aim to, I am fine with a RWF and give it another try in the future. [1] https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/strftime-wcsftime-strftime-l-wcsftime-l?view=vs-2019 Regards, Juan José Santamaría Flecha
Commits
-
Allow to_date/to_timestamp to recognize non-English month/day names.
- d67755049388 13.0 landed
-
Clean up formatting.c's logic for matching constant strings.
- fb12aefaafce 11.7 landed
- be13f227febc 12.2 landed
- a576f2a8f2e8 9.5.21 landed
- 9e24575f6f1b 9.6.17 landed
- 600b953d73ca 9.4.26 landed
- 212b870d6743 10.12 landed
- 4c70098ffa8c 13.0 landed
-
Implement standard datetime parsing mode
- 1a950f37d0a2 13.0 cited
-
Repair assorted issues in locale data extraction.
- 7ad1cd31bfcb 12.0 cited