Re: still use IndexIsValid() etc. macros?
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-12-18T22:08:32Z
Lists: pgsql-hackers
Peter Eisentraut <peter.eisentraut@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
Commits
-
Remove obsolete IndexIs* macros
- ae4472c61934 12.0 landed