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....@gmail.com>
Reviewed-by: Richard Guo <guofengli...@gmail.com>
Reviewed-by: Amit Langote <amitlangot...@gmail.com>
Reviewed-by: Andrey Lepikhov <a.lepik...@postgrespro.ru>
Reviewed-by: Tomas Vondra <tomas.von...@enterprisedb.com>
Discussion: 
https://postgr.es/m/caexhw5thqef3asvqvffcghygpfpy7o3xnvhhwbgbjfmrh8k...@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/6190d828cd25ae20c0a8548765a0e1b880f1f66d

Modified Files
--------------
src/backend/optimizer/path/costsize.c | 37 ++--------------------
src/backend/optimizer/path/joinrels.c | 58 +++++++++++++++++++++++++----------
src/include/optimizer/paths.h         |  2 ++
3 files changed, 46 insertions(+), 51 deletions(-)

Reply via email to