Re: GIST/GIN index not used with Row Level Security - Mailing list pgsql-general

From Tom Lane
Subject Re: GIST/GIN index not used with Row Level Security
Date
Msg-id 12552.1565723566@sss.pgh.pa.us
Whole thread Raw
In response to GIST/GIN index not used with Row Level Security  (Derek Hans <derek.hans@gmail.com>)
Responses Re: GIST/GIN index not used with Row Level Security
List pgsql-general
Derek Hans <derek.hans@gmail.com> writes:
> When using row level security, GIN and GIST indexes appear to get ignored.
> Is this expected behavior? Can I change the query to get PostgreSQL using
> the index? For example, with RLS enabled, this query:

Your example is obscuring the issue by incorporating a tenant_name
condition (where did that come from, anyway?) in one case and not
the other.  Without knowing how selective that is, it's hard to
compare the EXPLAIN results.

However, wild-guess time: it might be that without access to the
table statistics, the "search like '%yo'" condition is estimated
to be too unselective to make an indexscan profitable.  And putting
RLS in the way would disable that access if the ~~ operator is not
marked leakproof, which it isn't.

I'm not sure that you should get too excited about this, however.
You're evidently testing on a toy-size table, else the seqscan
cost estimate would be a lot higher.  With a table large enough
to make it really important to guess right, even the default
selectivity estimate might be enough to get an indexscan.

            regards, tom lane



pgsql-general by date:

Previous
From: Derek Hans
Date:
Subject: GIST/GIN index not used with Row Level Security
Next
From: Adrian Klaver
Date:
Subject: Re: GIST/GIN index not used with Row Level Security