Do not translate dummy SpecialJoinInfos for child joins
authorAmit Langote <amitlan@postgresql.org>
Mon, 25 Mar 2024 08:26:27 +0000 (17:26 +0900)
committerAmit Langote <amitlan@postgresql.org>
Mon, 25 Mar 2024 09:06:47 +0000 (18:06 +0900)
commit6190d828cd25ae20c0a8548765a0e1b880f1f66d
treee9aed068a9e6e8d5999f370959cf7cd58415c241
parent5278d0a2e870c61f9374a7796b90e6f9f6a73638
Do not translate dummy SpecialJoinInfos for child joins

This teaches build_child_join_sjinfo() to create the dummy
SpecialJoinInfos (those created for inner joins) directly for a given
child join, skipping the unnecessary overhead of translating the
parent joinrel's SpecialJoinInfo.

To that end, this commit moves the code to initialize the dummy
SpecialJoinInfos to a new function named init_dummy_sjinfo() and
changes the few existing sites that have this code and
build_child_join_sjinfo() to call this new function.

Author: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Reviewed-by: Richard Guo <guofenglinux@gmail.com>
Reviewed-by: Amit Langote <amitlangote09@gmail.com>
Reviewed-by: Andrey Lepikhov <a.lepikhov@postgrespro.ru>
Reviewed-by: Tomas Vondra <tomas.vondra@enterprisedb.com>
Discussion: https://postgr.es/m/CAExHW5tHqEf3ASVqvFFcghYGPfpy7o3xnvhHwBGbJFMRH8KjNw@mail.gmail.com
src/backend/optimizer/path/costsize.c
src/backend/optimizer/path/joinrels.c
src/include/optimizer/paths.h