Re: BUG #4974: Equivalent of "= ANY" and "BETWEEN" not observed by planner.

Поиск
Список
Период
Сортировка
От Greg Stark
Тема Re: BUG #4974: Equivalent of "= ANY" and "BETWEEN" not observed by planner.
Дата
Msg-id 407d949e0908120504y6fded20cvf3c626617517a1d8@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #4974: Equivalent of "= ANY" and "BETWEEN" not observed by planner.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
On Wed, Aug 12, 2009 at 3:15 AM, Tom Lane<tgl@sss.pgh.pa.us> wrote:
> "Ian Turner" <ian.turner@deshaw.com> writes:
>> The following queries are equivalent, because there are no integers betw=
een
>> 5 and 6 and because the BETWEEN operator contemplates a closed range.
>> SELECT * FROM example WHERE pk IN (5,6);
>> SELECT * FROM example WHERE pk BETWEEN 5 AND 6;
>
> The planner intentionally does not do very many inferences that are as
> datatype-dependent as this one would be. =A0It doesn't fit into the system
> design. =A0For the most part the possible gain is not large anyway.


Hm, we could do it in a data-type independent way which would work
even for non-integral values by imposing a recheck condition. That
would work for any data type with a btree ordering.

I think you're right that the potential gain isn't very big. A series
of equality values versus a range scan which uses the same index pages
is going to be about the same i/o. The only saving is the repeated
descent of the tree to find the leaf pages. Which should hopefully all
be in cache anyways.

I suppose it might help if you were then doing a merge join or order
by on the same key since the range scan will be in order but the
bitmap index scan would have to be sorted. But if there were enough
tuples for the sort to actually matter surely we would want the bitmap
index scan anyways.


--=20
greg
http://mit.edu/~gsstark/resume.pdf

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

Предыдущее
От: Ashesh Vashi
Дата:
Сообщение: Re: BUG #4977: post installation failed
Следующее
От: "Gaurav K Srivastava"
Дата:
Сообщение: BUG #4980: Dblink issue