Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid - Mailing list pgsql-hackers

From Richard Guo
Subject Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid
Date
Msg-id CAMbWs4_EyKimsqkkBAddEW8n1YyPjQd4gmnwYqqHHAUjKkBVQw@mail.gmail.com
Whole thread Raw
Responses Re: Introduce join_info_array for direct lookups of SpecialJoinInfo by ojrelid
List pgsql-hackers
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].

[1] https://www.postgresql.org/message-id/flat/0b819232-4b50-f245-1c7d-c8c61bf41827%40postgrespro.ru

Thanks
Richard
Attachment

pgsql-hackers by date:

Previous
From: "Anton A. Melnikov"
Date:
Subject: Re: Making Vars outer-join aware
Next
From: Anton Kirilov
Date:
Subject: Re: Add PQsendSyncMessage() to libpq