pgsql: Improve RLS handling in copy.c - Mailing list pgsql-committers

From Stephen Frost
Subject pgsql: Improve RLS handling in copy.c
Date
Msg-id E1ZJpKt-0006x7-KH@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Improve RLS handling in copy.c

To avoid a race condition where the relation being COPY'd could be
changed into a view or otherwise modified, keep the original lock
on the relation.  Further, fully qualify the relation when building
the query up.

Also remove the poorly thought-out Assert() and check the entire
relationOids list as, post-RLS, there can certainly be multiple
relations involved and the planner does not guarantee their ordering.

Per discussion with Noah and Andres.

Back-patch to 9.5 where RLS was introduced.

Branch
------
REL9_5_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/5d179a28fb4c819f3812c40fa7e626b1d3081982

Modified Files
--------------
src/backend/commands/copy.c               |   45 +++++++++++++++----------
src/test/regress/expected/rowsecurity.out |   50 +++++++++++++++++++++++++++-
src/test/regress/sql/rowsecurity.sql      |   51 ++++++++++++++++++++++++++++-
3 files changed, 126 insertions(+), 20 deletions(-)


pgsql-committers by date:

Previous
From: Stephen Frost
Date:
Subject: pgsql: Improve RLS handling in copy.c
Next
From: Joe Conway
Date:
Subject: pgsql: Fix pg_dump output of policies.