Peter Eisentraut <peter.eisentr...@2ndquadrant.com> writes: > In another patch discussion it was brought up why the patch doesn't use > the IndexIsValid() etc. macros.
> They are defined thus: > /* > * Use of these macros is recommended over direct examination of the state > * flag columns where possible; this allows source code compatibility with > * the hacky representation used in 9.2. > */ > #define IndexIsValid(indexForm) ((indexForm)->indisvalid) > #define IndexIsReady(indexForm) ((indexForm)->indisready) > #define IndexIsLive(indexForm) ((indexForm)->indislive) > I don't see them used consistently. Obviously, some low-level code > needs to bypass them, but it's hard to see where to draw the line. Is > it worth keeping these? Is there still code that maintains > compatibility with 9.2 from a single source? We have a general problem with people ignoring accessor macros; it's hardly limited to these. The relcache accessor macros such as RelationGetDescr, for instance, tend to get bypassed. I'm not sure how worthwhile it is to be picky about that. I agree that now that 9.2 is a year out of support, there's not too much value in the original cross-branch-compatibility argument for these particular macros. regards, tom lane