Re: executor relation handling

Поиск
Список
Период
Сортировка
От Amit Langote
Тема Re: executor relation handling
Дата
Msg-id 1ff9cd4d-b0be-5532-3d21-ad66f8a4c34c@lab.ntt.co.jp
обсуждение исходный текст
Ответ на executor relation handling  (Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>)
Ответы Re: executor relation handling  (David Rowley <david.rowley@2ndquadrant.com>)
Список pgsql-hackers
On 2018/08/16 17:22, Amit Langote wrote:
> 0004-Revise-executor-range-table-relation-opening-closing.patch
> 
> This adds two arrays to EState indexed by RT indexes, one for
> RangeTblEntry's and another for Relation pointers.  The former reduces the
> cost of fetching RangeTblEntry by RT index.  The latter is used by a newly
> introduced function ExecRangeTableRelation(), which replaces heap_open for
> relations that are contained in the range table.  If a given RTE's
> relation is opened by multiple times, only the first call of
> ExecRangeTableRelation will go to relcache.

David Rowely recently, independently [1], proposed one of the ideas
mentioned above (store RangeTblEntry's in an array in EState).  As I
mentioned in reply to his email, I think his implementation of the idea is
better than mine, so I've merged his patch in the above patch, except one
part: instead of removing the es_range_table list altogether, I decided to
keep it around so that ExecSerializePlan doesn't have to build one all
over again from the array like his patch did.

Updated patches attached; 0001-0003 are same as v1.

Thanks,
Amit

[1] Make executor's Range Table an array instead of a List
https://postgr.es/m/CAKJS1f9EypD_=xG6ACFdF=1cBjz+Z9hiHHSd-RqLjor+QyA-nw@mail.gmail.com

Вложения

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

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: Make executor's Range Table an array instead of a List
Следующее
От: Chi Gao
Дата:
Сообщение: Enable using IS NOT DISTINCT FROM in hash and merge joins