Re: Timestamp operator error

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Timestamp operator error
Дата
Msg-id 27215.1014697694@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Timestamp operator error  ("Josh Berkus" <josh@agliodbs.com>)
Ответы Re: Timestamp operator error  ("Josh Berkus" <josh@agliodbs.com>)
Список pgsql-sql
"Josh Berkus" <josh@agliodbs.com> writes:
> Potentially a real problem bug in 7.2:

> staffos=# select ('6 days'::INTERVAL + current_timestamp);
>       ?column?
> ---------------------
>  2002-02-25 00:00:00
> (1 row)

Well, 7.1's not materially better:

test71=# select ('6 days'::INTERVAL + current_timestamp);?column?
----------23:15:27
(1 row)

AFAICT, what's happening in 7.2 is that the closest-match operator
is "time + date", so it casts the interval to time (yielding 0 hours),
and casts current_timestamp to date (yielding midnight today)
and adds.

7.1 evidently found some different, but equally unintuitive conversion
path.  Probably the difference in behavior is not the result of any
algorithm change, but the addition or subtraction of a type-conversion
operator.

I suspect this is good ammunition for the argument I've made from time
to time that we have too many implicit conversions, not too few.
        regards, tom lane


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

Предыдущее
От: "Josh Berkus"
Дата:
Сообщение: Timestamp operator error
Следующее
От: "Josh Berkus"
Дата:
Сообщение: Re: Timestamp operator error