pgsql: Fix ALTER DEFAULT PRIVILEGES with duplicated objects

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix ALTER DEFAULT PRIVILEGES with duplicated objects
Date: 2021-01-20 02:42:05
Message-ID: E1l23Rd-0006Q0-Qs@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix ALTER DEFAULT PRIVILEGES with duplicated objects

Specifying duplicated objects in this command would lead to unique
constraint violations in pg_default_acl or "tuple already updated by
self" errors. Similarly to GRANT/REVOKE, increment the command ID after
each subcommand processing to allow this case to work transparently.

A regression test is added by tweaking one of the existing queries of
privileges.sql to stress this case.

Reported-by: Andrus
Author: Michael Paquier
Reviewed-by: Álvaro Herrera
Discussion: https://postgr.es/m/ae2a7dc1-9d71-8cba-3bb9-e4cb7eb1f44e@hot.ee
Backpatch-through: 9.5

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/74ee3abcfefa6e6b0756f85baa31a7ae21bb2fec

Modified Files
--------------
src/backend/catalog/aclchk.c | 3 +++
src/test/regress/expected/privileges.out | 3 ++-
src/test/regress/sql/privileges.sql | 3 ++-
3 files changed, 7 insertions(+), 2 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2021-01-20 04:32:07 pgsql: Add regression test for DROP OWNED BY with default ACLs
Previous Message Tom Lane 2021-01-19 18:26:32 pgsql: Remove faulty support for MergeAppend plan with WHERE CURRENT OF