On Mon, Mar 25, 2024 at 6:08 PM Amit Langote <amit...@postgresql.org> wrote: > 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(-)
I noticed a failure that I don't know what to make of after this and the other commit (5278d0a2e) reached the buildfarm animal morepork: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=morepork&dt=2024-03-25%2009%3A30%3A38 In file included from ginbtree.c:17: In file included from ../../../../src/include/access/gin_private.h:20: ../../../../src/include/lib/rbtree.h:1:1: error: unknown type name 'ator' ator</structfield> <type>yes_or_no</type> ^ ../../../../src/include/lib/rbtree.h:1:5: error: expected identifier or '(' ator</structfield> <type>yes_or_no</type> ^ In file included from ginbtree.c:17: In file included from ../../../../src/include/access/gin_private.h:21: In file included from ../../../../src/include/storage/bufmgr.h:22: In file included from ../../../../src/include/utils/snapmgr.h:18: ../../../../src/include/utils/resowner.h:33:20: error: unknown type name 'ResourceOwner' extern PGDLLIMPORT ResourceOwner CurrentResourceOwner; ^ ../../../../src/include/utils/resowner.h:34:20: error: unknown type name 'ResourceOwner' extern PGDLLIMPORT ResourceOwner CurTransactionResourceOwner; ^ ../../../../src/include/utils/resowner.h:35:20: error: unknown type name 'ResourceOwner' extern PGDLLIMPORT ResourceOwner TopTransactionResourceOwner; ^ ../../../../src/include/utils/resowner.h:36:20: error: unknown type name 'ResourceOwner' extern PGDLLIMPORT ResourceOwner AuxProcessResourceOwner; ^ ../../../../src/include/utils/resowner.h:137:8: error: unknown type name 'ResourceOwner'; did you mean 'ResourceOwnerDesc'? extern ResourceOwner ResourceOwnerCreate(ResourceOwner parent, ^~~~~~~~~~~~~ ResourceOwnerDesc ../../../../src/include/utils/resowner.h:120:3: note: 'ResourceOwnerDesc' declared here ... Does anyone know what might be going on here? -- Thanks, Amit Langote