On the warpath again about ill-considered inclusion nests

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: On the warpath again about ill-considered inclusion nests
Date: 2014-11-13 00:30:51
Message-ID: 16970.1415838651@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I noticed that the recent custom-path commit completely ignored my
advice about not including executor headers into planner headers or
vice versa. On the way to fixing that, I was dismayed to discover
that the RLS patch has utterly bollixed all semblance of modularization
of the headers. src/include/rewrite/rowsecurity.h, which one would
reasonably think to be a rewriter header (nevermind its header comment
to the contrary), nonetheless includes execnodes.h (executor stuff)
and relation.h (planner stuff), neither of which a rewriter header
has any business including. And if that weren't bad enough, it's
been included into utils/rel.h (relcache), which is close enough
to guaranteeing that all planner and executor symbols are visible
in every darn module we've got. Might as well just put everything
we have in postgres.h and abandon all pretense of modularity.

This needs to be cleaned up. If you don't want me doing it with
an axe, better put some suggestions forward.

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2014-11-13 00:31:06 Re: REINDEX CONCURRENTLY 2.0
Previous Message Michael Paquier 2014-11-13 00:30:22 Re: using custom scan nodes to prototype parallel sequential scan