Thread
Commits
-
Remove obsolete IndexIs* macros
- ae4472c61934 12.0 landed
-
still use IndexIsValid() etc. macros?
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> — 2018-12-18T21:49:17Z
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? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Re: still use IndexIsValid() etc. macros?
Tom Lane <tgl@sss.pgh.pa.us> — 2018-12-18T22:08:32Z
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