Tom Lane wrote:
> 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.
I noticed the RLS side of things a week ago as well, and wasn't very
pleased about it. I don't know about an axe, but we do need some
serious cleanup.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services