On Mon, Mar 17, 2014 at 12:55 PM, Andres Freund <and...@2ndquadrant.com> wrote: > On 2014-03-17 12:50:37 -0400, Tom Lane wrote: >> Alvaro Herrera <alvhe...@2ndquadrant.com> writes: >> > I noticed (by running "cd src/include ; make check" with the attached >> > patch applied) that since commit b89e151054 ("Introduce logical >> > decoding.") tqual.h now emits this warning when compiled standalone: >> >> > /pgsql/source/HEAD/src/include/utils/tqual.h:101:13: warning: 'struct >> > HTAB' declared inside parameter list [enabled by default] >> > /pgsql/source/HEAD/src/include/utils/tqual.h:101:13: warning: its scope is >> > only this definition or declaration, which is probably not what you want >> > [enabled by default] >> >> > The prototype in question is: >> >> > /* >> > * To avoid leaking to much knowledge about reorderbuffer implementation >> > * details this is implemented in reorderbuffer.c not tqual.c. >> > */ >> > extern bool ResolveCminCmaxDuringDecoding(HTAB *tuplecid_data, >> > Snapshot snapshot, >> > HeapTuple htup, >> > Buffer buffer, >> > CommandId *cmin, CommandId >> > *cmax); >> >> I guess the real question is why such a prototype is in tqual.h in >> the first place. ISTM this should be pushed somewhere specific to >> reorderbuffer.c. I'm -1 on having struct HTAB bleed into tqual.h >> via either of the methods you suggest. > > It's the only logical decoding specific routine that's called by tqual.c > which doesn't need anything else from reorderbuffer. I'd like to avoid > more stuff bleeding in there...
That's 100% irrelevant. Function declarations for backend/X/Y/Z.c are supposed to be in include/X/Z.h with a few historical exceptions I hope we won't add to. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers