"plan should not reference subplan's variable" when using row level security

From: Adam Guthrie <asguthrie(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: "plan should not reference subplan's variable" when using row level security
Date: 2016-02-24 17:51:17
Message-ID: CAC3DOVy2H7W5bGeVaJjq5XtKvxGNKiPkG_SjXNOqXYLB5ccFBA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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?

Any help much appreciated,

Adam

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Paul Jungwirth 2016-02-24 17:53:31 Re: Ubuntu and Rails postgresql setup
Previous Message Paul Jungwirth 2016-02-24 17:44:37 Re: Ubuntu and Rails postgresql setup