Re: "plan should not reference subplan's variable" when using row level security
От | Adrian Klaver |
---|---|
Тема | Re: "plan should not reference subplan's variable" when using row level security |
Дата | |
Msg-id | 56CE0A82.3040307@aklaver.com обсуждение исходный текст |
Ответ на | "plan should not reference subplan's variable" when using row level security (Adam Guthrie <asguthrie@gmail.com>) |
Ответы |
Re: "plan should not reference subplan's variable" when
using row level security
|
Список | pgsql-general |
On 02/24/2016 09:51 AM, Adam Guthrie wrote: > Hi, > > Whilst trying to use row level security with a subquery in the USING > expression, I'm receiving an error "plan should not reference > subplan's variable" > > A simple sql file to reproduce: > > **** > > CREATE TABLE a ( > id INTEGER PRIMARY KEY > ); > > CREATE TABLE b ( > id INTEGER PRIMARY KEY, > a_id INTEGER, > text TEXT > ); > > CREATE POLICY a_select ON b FOR SELECT > USING ( EXISTS(SELECT FROM a WHERE a.id = b.a_id) ); > > ALTER TABLE b ENABLE ROW LEVEL SECURITY; > > INSERT INTO a (id) VALUES (1); > > INSERT INTO b (id, a_id, text) VALUES (1, 1, 'one'); > > GRANT ALL ON ALL TABLES IN SCHEMA public TO test; > > SET ROLE test; > > SELECT * FROM b; > > UPDATE b SET text = 'ONE' WHERE id = 1; > > **** > > gives error: > > psql:/tmp/test.sql:26: ERROR: plan should not reference subplan's variable > > Is this a bug or am I doing something wrong? I started to work through this when I realized the permissions/attributes of the role test are not shown. This seems to be important as the UPDATE example works if you run it immediately after: INSERT INTO b (id, a_id, text) VALUES (1, 1, 'one'); > > Any help much appreciated, > > Adam > > -- Adrian Klaver adrian.klaver@aklaver.com
В списке pgsql-general по дате отправления: