Sorry for the bug. At Thu, 25 Mar 2021 01:50:29 -0400, Tom Lane <t...@sss.pgh.pa.us> wrote in > Amul Sul <sula...@gmail.com> writes: > > On Wed, Mar 24, 2021 at 8:09 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > >> static inline struct SMgrRelationData * > >> RelationGetSmgr(Relation rel) > >> { > >> if (unlikely(rel->rd_smgr == NULL)) > >> RelationOpenSmgr(rel); > >> return rel->rd_smgr; > >> } > > > A quick question: Can't it be a macro instead of an inline function > > like other macros we have in rel.h? > > The multiple-evaluation hazard seems like an issue. We've tolerated > such hazards in the past, but mostly just because we weren't relying > on static inlines being available, so there wasn't a good way around > it. > > Also, the conditional evaluation here would look rather ugly > in a macro, I think, if indeed you could do it at all without > provoking compiler warnings.
FWIW, +1 for the function as is. regards. -- Kyotaro Horiguchi NTT Open Source Software Center