Re: Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid
Date: 2023-05-08 02:30:05
Message-ID: CAMbWs4-AhrUoohfSrm31f_=MC-4yo3FagjrSoCzj=8eMdumTqg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, May 4, 2023 at 4:07 PM Richard Guo <guofenglinux(at)gmail(dot)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

Attachment Content-Type Size
v2-0001-Allow-direct-lookups-of-SpecialJoinInfo-by-ojrelid.patch application/octet-stream 11.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2023-05-08 02:34:02 Re: 2023-05-11 release announcement draft
Previous Message Tomas Vondra 2023-05-08 01:34:15 Re: Add LZ4 compression in pg_dump