Re: BUG #1993: Adding/subtracting negative time intervals

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #1993: Adding/subtracting negative time intervals
Дата
Msg-id 9631.1130215059@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: BUG #1993: Adding/subtracting negative time intervals  (Bruce Momjian <pgman@candle.pha.pa.us>)
Ответы Re: BUG #1993: Adding/subtracting negative time intervals  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-bugs
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Tom Lane wrote:
>> Urgh.  I think this is a serious thinko in Michael Glaesemann's rewrite
>> of interval_mul.

> The reason interval_justify_hours is called by interval multiplication
> is so multipling an interval '2 days, 4 hours' by 10 doesn't return
> values like 20 days, 40 hours, etc, but instead something like '21 days,
> 16 hours', which seems more reasonable.

That's utterly WRONG, though.  The entire *point* of the 8.1 change is
that days and hours are incommensurable.  We are forced to down-convert
in some cases --- for example, we can't compute a useful result for
"0.5 * '1 day'" without imputing "12 hours" as the equivalent of 0.5 day
--- but we never have to and never should up-convert, except by explicit
user command ... which is what the justify_hours function is for.

> One solution would be
> to suggest the use of interval_justify_hours() in the documentation for
> interval multiplication, and prevent the justification from happening
> automatically.

Exactly.  Forcing the justification to happen is broken, because there's
no way to get the other behavior.

            regards, tom lane

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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: BUG #1993: Adding/subtracting negative time intervals
Следующее
От: Bruno Wolff III
Дата:
Сообщение: Re: BUG #1943: Lock A row with the option NoWait