Tom Lane wrote:
> Robert Haas <robertmh...@gmail.com> writes:
> > On Tue, Jan 27, 2009 at 12:52 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> >> Right, but you expect that to be a small and predictable cost, say in
> >> the single-digits-percentage range.  Plan optimizations that
> >> suddenly stop happening can cost you multiple orders of magnitude.
> 
> > Well, look at it another way.  If we don't accept row-level security
> > into PostgreSQL, then people will have to implement it themselves.  In
> > fact, I currently have a real application that does exactly this.  The
> > row-filtering is done, in essence, by having the web application add
> > certain conditions to the WHERE clause of certain queries depending on
> > which user is making the request.  And if those WHERE clauses happen
> > to mention columns from table X, then table X won't be a candidate for
> > join removal.  The only difference is that the logic is in my app
> > rather than in the database itself.
> 
> > To put that another way, row-level permissions are just another
> > attribute of a table that could potentially affect the query result,
> > and the impact of referring to that attribute will be exactly the same
> > as the impact of referring to any other attribute in that table.
> 
> The flaw in that argument is that as you are doing it, the
> de-optimization only happens on queries that actually need the behavior.
> As the SEPostgres patch is constructed, the planner could *never* trust
> an FK for optimization since it would have no way to know whether row
> level permissions might be present (perhaps only for some rows) at
> execution time.  You could only get back the optimization in builds with
> SEPostgres compiled out.  That's pretty nasty, especially for packagers
> who have to decide which build setting will displease fewer users.

I am afraid that SQL-level row permissions would also cause that
problem, and I thought they were enabled by default.  (The configure
flag --enable-selinux only controls SE-Linux support.)

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to