Add locking clause for SB views for update/delete

Enterprise / PostgreSQL - Stephen Frost [snowman.net] - 25 February 2015 20:36 UTC

In expand_security_qual(), we were handling locking correctly when a PlanRowMark existed, but not when we were working with the target relation (which doesn't have any PlanRowMarks, but the subquery created for the security barrier quals still needs to lock the rows under it).

Noted by Etsuro Fujita when working with the Postgres FDW, which wasn't properly issuing a SELECT ... FOR UPDATE to the remote side under a DELETE.

Back-patch to 9.4 where updatable security barrier views were introduced.

Per discussion with Etsuro and Dean Rasheed.

6f9bd50 Add locking clause for SB views for update/delete
src/backend/optimizer/prep/prepsecurity.c | 35 +++-
src/test/regress/expected/rowsecurity.out | 64 +++---
src/test/regress/expected/updatable_views.out | 264 +++++++++++++------------
3 files changed, 206 insertions(+), 157 deletions(-)

Upstream: git.postgresql.org


  • Share