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
|
Список | 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 по дате отправления: