Search Postgresql Archives

[9.5] next question: rls and indexes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi @ll,


my table:


test=*# \d rls_test
   Table "public.rls_test"
 Column |  Type   | Modifiers
--------+---------+-----------
 id     | integer |
 name   | text    |
 txt    | text    |
Indexes:
    "idx_name" btree (name)
Policies:
    POLICY "my_policy" FOR ALL
      USING (name = ("current_user"())::text)

test=*# commit;
COMMIT
Time: 0,581 ms
test=# \c - name_66;
You are now connected to database "test" as user "name_66".
test=> explain select * from rls_test ;
                         QUERY PLAN
-------------------------------------------------------------
 Seq Scan on rls_test  (cost=0.00..630.00 rows=91 width=335)
   Filter: (name = ("current_user"())::text)
(2 rows)

Time: 1,531 ms
test=*> set enable_Seqscan to off;
SET
Time: 0,073 ms
test=*> explain select * from rls_test ;
                                  QUERY PLAN
-------------------------------------------------------------------------------
 Seq Scan on rls_test  (cost=10000000000.00..10000000630.00 rows=91
width=335)
   Filter: (name = ("current_user"())::text)
(2 rows)



As you can see, the index isn't in use, but i think, in this case PG
should use it.

I can expand the where with a where, so PG is using the index:


test=*> explain select * from rls_test where name = current_user;
                               QUERY PLAN
------------------------------------------------------------------------
 Bitmap Heap Scan on rls_test  (cost=4.97..232.90 rows=1 width=335)
   Recheck Cond: (name = ("current_user"())::text)
   Filter: (name = ("current_user"())::text)
   ->  Bitmap Index Scan on idx_name  (cost=0.00..4.97 rows=91 width=0)
         Index Cond: (name = ("current_user"())::text)
(5 rows)



USING in a policy isn't using the avalable index.
Bug or Feature?


Andreas
-- 
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect.                              (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly."   (unknown)
Kaufbach, Saxony, Germany, Europe.              N 51.05082°, E 13.56889°


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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux