]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Ensure COPY TO on an RLS-enabled table copies no more than it should.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 10 Mar 2023 18:52:28 +0000 (13:52 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 10 Mar 2023 18:52:28 +0000 (13:52 -0500)
commit6e2674d772b017f4ad4e36394aa1cf64c05b46e5
tree8757bb55d44a1b21c1e82b6a47d3e1996d8ff535
parentd1c0f81e72738bcd1b5abc86be7f5a90d659f7bc
Ensure COPY TO on an RLS-enabled table copies no more than it should.

The COPY documentation is quite clear that "COPY relation TO" copies
rows from only the named table, not any inheritance children it may
have.  However, if you enabled row-level security on the table then
this stopped being true, because the code forgot to apply the ONLY
modifier in the "SELECT ... FROM relation" query that it constructs
in order to allow RLS predicates to be attached.  Fix that.

Report and patch by Antonin Houska (comment adjustments and test case
by me).  Back-patch to all supported branches.

Discussion: https://postgr.es/m/3472.1675251957@antos
src/backend/commands/copy.c
src/test/regress/expected/rowsecurity.out
src/test/regress/sql/rowsecurity.sql