Re: Index selection issues with RLS using expressions - Mailing list pgsql-general

From Tom Lane
Subject Re: Index selection issues with RLS using expressions
Date
Msg-id 23829.1585682302@sss.pgh.pa.us
Whole thread Raw
In response to Index selection issues with RLS using expressions  (Alastair McKinley <a.mckinley@analyticsengines.com>)
Responses Re: Index selection issues with RLS using expressions  (Alastair McKinley <a.mckinley@analyticsengines.com>)
List pgsql-general
Alastair McKinley <a.mckinley@analyticsengines.com> writes:
> I am running in to an issue with RLS and index selection in my queries.  I created a toy example to try to illustrate
theissue below.  Postgres version is PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc
(Debian8.3.0-6) 8.3.0, 64-bit. 

> Is there some subtle reason as to why the role "new_user" cannot seem to generate a query plan that uses the gin
index?

The && operator is not marked leakproof, so it can't be applied till
after the RLS filter, making an indexscan with it impossible when
RLS is active.

Perhaps arrayoverlap() itself could be proven leakproof, but the
underlying type-specific equality operator might or might not be.
We don't have enough infrastructure to handle indirect leakproofness
requirements like that, so you lose :-(

            regards, tom lane



pgsql-general by date:

Previous
From: Alastair McKinley
Date:
Subject: Index selection issues with RLS using expressions
Next
From: Richard Bernstein
Date:
Subject: keeping images in a bytea field on AWS RDS