Re: Block nested loop join

Поиск
Список
Период
Сортировка
От Gregory Stark
Тема Re: Block nested loop join
Дата
Msg-id 878wsw3a2i.fsf@oxford.xeocode.com
обсуждение исходный текст
Ответ на Re: Block nested loop join  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> writes:

> Gregory Stark <stark@enterprisedb.com> writes:
>> So the use case of a real block nested loop would be doing a cartesian join of
>> two large tables where neither fits in RAM. That does seem like it might be
>> kind of narrow given how large the output would be.
>
> Yeah.  If you have a hashable join condition then our existing batched
> hash join code should be roughly equivalent to this method.  So the use
> case is joining a couple of large tables with an un-hashable,
> un-indexable join condition (or none at all, ie cross product) and that
> just isn't something we hear people wanting to do a lot.  I can't really
> see why we'd bother maintaining extra code for block nested loop.

Hm, I hadn't thought of other non-hashable join conditions.

I wonder how much code it would be though if we just hacked hash join to
support returning the full cartesian product. Ie, instead of doing a hash
lookup do a full scan of the hash and recheck the join condition if any for
every combination.

That seems like it would be a pretty small change to HashJoin and would
effectively support precisely this join type.

--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com Ask me about EnterpriseDB's On-Demand Production
Tuning


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

Предыдущее
От: "Robert Haas"
Дата:
Сообщение: Re: patch: Allow the UUID type to accept non-standard formats
Следующее
От: Tom Lane
Дата:
Сообщение: Re: How is random_page_cost=4 ok?