Re: Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid

Поиск
Список
Период
Сортировка
От Richard Guo
Тема Re: Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid
Дата
Msg-id CAMbWs4-AhrUoohfSrm31f_=MC-4yo3FagjrSoCzj=8eMdumTqg@mail.gmail.com
обсуждение исходный текст
Ответ на Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid  (Richard Guo <guofenglinux@gmail.com>)
Ответы Re: Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid  (Richard Guo <guofenglinux@gmail.com>)
Список pgsql-hackers

On Thu, May 4, 2023 at 4:07 PM Richard Guo <guofenglinux@gmail.com> wrote:
When working on the improper qual pushdown issue [1], there is a need in
the proposed fix to avoid scanning all the SpecialJoinInfos, since that
is too expensive.  I think this might be a common requirement.  In the
current codes there are several places where we need to scan all the
SpecialJoinInfos in join_info_list looking for SpecialJoinInfos that
belong to a given outer join relid set, which is an O(n) operation.  So
start a new thread for this requirement.

To improve the O(n) operation, introduce join_info_array to allow direct
lookups of SpecialJoinInfo by ojrelid.  This is doable because for each
non-zero ojrelid there can only be one SpecialJoinInfo.  This can
benefit clause_is_computable_at() and have_unsafe_outer_join_ref(), as
the patch does, and more future usages such as
add_outer_joins_to_relids() in the proposed patch for issue [1].

BTW, I just noticed that the introduction of join_info_array can also
benefit make_outerjoininfo(), check_redundant_nullability_qual() and
get_join_domain_min_rels().  So update the patch to do the changes.

I'd like to devise a test query that shows performance gain from this
patch, but I'm not sure how to do that.  May need help here.

Any thoughts on this patch?

Thanks
Richard
Вложения

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

Предыдущее
От: Tomas Vondra
Дата:
Сообщение: Re: Add LZ4 compression in pg_dump
Следующее
От: David Rowley
Дата:
Сообщение: Re: 2023-05-11 release announcement draft