The following bug has been logged on the website:
Bug reference: 13988
Logged by: Adam Guthrie
Email address: asguthrie@gmail.com
PostgreSQL version: 9.5.1
Operating system: OS X 10.11
Description:
The following sql:
****
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');
CREATE ROLE test;
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:
psql:/tmp/plan.sql:25: ERROR: XX000: plan should not reference subplan's
variable
LOCATION: finalize_plan, subselect.c:2624
whereas I believe it should give:
UPDATE 0