Re: to_date_valid()

Поиск
Список
Период
Сортировка
От Andreas 'ads' Scherbaum
Тема Re: to_date_valid()
Дата
Msg-id d59bcad2-5104-c6eb-671f-f5171e670a02@wars-nicht.de
обсуждение исходный текст
Ответ на Re: to_date_valid()  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Ответы Re: to_date_valid()  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Список pgsql-hackers
On 08.09.2016 17:31, Peter Eisentraut wrote:
> On 8/15/16 7:33 AM, Andreas 'ads' Scherbaum wrote:
>> postgres=# SELECT to_date('2011 12  18', 'YYYY MM   DD');
>>    to_date
>> ------------
>>   2011-12-08
>> (1 row)
>>
>>
>> That is from the regression tests, and obviously handles the date
>> transformation wrong. My attempt catches this, because I compare the
>> date with the input date, and do not rely on a valid date only.
>
> It's debatable what is correct here.
>
> Using to_number, the behavior appears to be that a space in the pattern
> ignores one character.  For example:
>
> test=# select to_number('123 456', '999 999');
>  to_number
> -----------
>     123456
>
> test=# select to_number('123 456', '999  999');
>  to_number
> -----------
>      12356
>
> Considering that, the above to_date result is not incorrect.
>
> So just squashing the spaces and converting the value back is not a
> correct approach to detecting overflow.
>
> I think using ValidateDate() was the right idea.  That is what we use
> for checking date validity everywhere else.

ValidateDate() will tell you if it's a valid date. But not if the 
transformation was correct:

postgres=# SELECT to_date('2011 12  18', 'YYYY MM   DD');  to_date
------------ 2011-12-08
(1 row)

(with the patch from Artur)


Any idea how to solve this problem?

--             Andreas 'ads' Scherbaum
German PostgreSQL User Group
European PostgreSQL User Group - Board of Directors
Volunteer Regional Contact, Germany - PostgreSQL Project



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

Предыдущее
От: Petr Jelinek
Дата:
Сообщение: Re: Quorum commit for multiple synchronous replication.
Следующее
От: Victor Wagner
Дата:
Сообщение: Re: Patch: Implement failover on libpq connect level.