pgsql: Fix RLS with COPY (col1, col2) FROM tab - Mailing list pgsql-committers

From Stephen Frost
Subject pgsql: Fix RLS with COPY (col1, col2) FROM tab
Date
Msg-id E1br9mW-0005C8-DW@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix RLS with COPY (col1, col2) FROM tab

Attempting to COPY a subset of columns from a table with RLS enabled
would fail due to an invalid query being constructed (using a single
ColumnRef with the list of fields to exact in 'fields', but that's for
the different levels of an indirection for a single column, not for
specifying multiple columns).

Correct by building a ColumnRef and then RestTarget for each column
being requested and then adding those to the targetList for the select
query.  Include regression tests to hopefully catch if this is broken
again in the future.

Patch-By: Adam Brightwell
Reviewed-By: Michael Paquier

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/814b9e9b8edf36cac65e0d8fcef17e50a04b1617

Modified Files
--------------
src/backend/commands/copy.c         | 63 ++++++++++++++++++++++++------
src/test/regress/expected/copy2.out | 78 +++++++++++++++++++++++++++++++++++++
src/test/regress/sql/copy2.sql      | 63 ++++++++++++++++++++++++++++++
3 files changed, 192 insertions(+), 12 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Enforce a specific order for probing library loadability in pg_u
Next
From: Stephen Frost
Date:
Subject: pgsql: Fix RLS with COPY (col1, col2) FROM tab