Re: to_date_valid()

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: to_date_valid()
Дата
Msg-id CAKFQuwY0qYwP0+-dCsedzCsyhC_LjDLJ+hsWQvGkbG51RT9wrQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: to_date_valid()  (Andreas 'ads' Scherbaum <adsmail@wars-nicht.de>)
Ответы Re: to_date_valid()  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: to_date_valid()  (Andreas 'ads' Scherbaum <adsmail@wars-nicht.de>)
Список pgsql-hackers
On Mon, Jul 4, 2016 at 8:39 PM, Andreas 'ads' Scherbaum <adsmail@wars-nicht.de> wrote:
On 04.07.2016 18:37, Pavel Stehule wrote:

I don't know if the name "strict" is best, but the name "validate" is
not good too. Current to_date does some validations too.

Obviously not enough, because it allows invalid dates. I'd say that the current to_date() merely validates the input format for string parsing, and that the date is in range. But there is not much validation on the date itself.

So the name can't be "strict" because of the conflict with "NULL" handling, and you don't like "valid" - what other options do you offer?

​We don't have to change the name...we could do something like how RegularExpressions work - like (?i) - and just add  a new modifier ​code.

​'~YYYY-MI-DD' --that's a leading tilde, could be anything - even something like "HMYYYY-MI-DD" for "historical mode"

​Also, see this thread of a few weeks ago for related material:


It seems that fixing it is back on the table, possibly even for 9.6 since this is such a hideous bug - one that closely resembles a cockroach ;)

WRT to the 2014 "reject out-of-range dates" thread, I'm kinda surprised that we didn't just set the date to be the minimum or maximum allowable date back in 9.2 instead of rejecting it...

I'd be more inclined to add another argument if it was basically an enum.

to_date(text, format, format_style)

This at least opens the door for future enhancements that are associated with named styles.  I could imagine an "exact" format that also allows for something like regexp character classes so that one can write:  "YYYY[:SEP:]MM[:SEP:]DD" to keep exact matches but accommodate variations on what people type as a separator e.g. [.-/]

format_style=>historical would invoke today's behaviors

David J.

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andreas 'ads' Scherbaum
Дата:
Сообщение: Re: to_date_valid()
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: to_date_valid()