Sorry for the bug. At Thu, 25 Mar 2021 01:50:29 -0400, Tom Lane <[email protected]> wrote in > Amul Sul <[email protected]> writes: > > On Wed, Mar 24, 2021 at 8:09 PM Tom Lane <[email protected]> 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
