Re: BUG #4748: hash join and sort-merge join make different results

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #4748: hash join and sort-merge join make different results
Дата
Msg-id 21030.1238788668@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: BUG #4748: hash join and sort-merge join make different results  (Alvaro Herrera <alvherre@commandprompt.com>)
Ответы Re: BUG #4748: hash join and sort-merge join make different results  (Roman Kononov <kononov@ftml.net>)
Список pgsql-bugs
Alvaro Herrera <alvherre@commandprompt.com> writes:
> Roman Kononov wrote:
>> Description:        hash join and sort-merge join make different results
>> Details:
>>
>> test-std=# create table t(s int,i interval);
>> CREATE TABLE
>> test-std=# insert into t values (0,'30 days'), (1,'1 month');
>> INSERT 0 2
>> test-std=# select * from t as a, t as b where a.i=b.i;

> Reproducible in 8.2.13 as well ..

The problem is that interval_cmp_internal(), and hence interval_eq(),
says that '1 month' = '30 days'.  But they don't hash to the same thing.

I think we could fix this by having interval_hash() duplicate the
total-span calculation done by interval_cmp_internal, and then return
the hash of the resulting TimeOffset.  This is going to break existing
hash indexes on intervals, but there seems little choice...

            regards, tom lane

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

Предыдущее
От: Jaime Casanova
Дата:
Сообщение: Re: BUG #4748: hash join and sort-merge join make different results
Следующее
От: "Dickson S. Guedes"
Дата:
Сообщение: Re: BUG #4748: hash join and sort-merge join make different results