Re: pg_restore --no-policies should not restore policies' comment
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: jian he <jian.universality@gmail.com>
Cc: Fujii Masao <masao.fujii@oss.nttdata.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2025-09-03T11:50:09Z
Lists: pgsql-hackers
Attachments
- v4-0001-PG17-pg_restore-Fix-comment-handling-with-no-publicati.txt (text/plain)
- v4-0001-PG18-master-pg_restore-Fix-comment-handling-with-no-publicati.patch (application/octet-stream) patch v4-0001
- v4-0001-PG16-pg_restore-Fix-comment-handling-with-no-publicati.txt (text/plain)
- v4-0001-PG15-pg_restore-Fix-comment-handling-with-no-publicati.txt (text/plain)
- v4-0001-PG13-PG14-pg_restore-Fix-comment-handling-with-no-publicati.txt (text/plain)
- v4-0004-pg_restore-Fix-security-label-handling-with-no-pu.patch (application/octet-stream) patch v4-0004
- v4-0003-pg_dump-Fix-dumping-of-security-labels-on-subscri.patch (application/octet-stream) patch v4-0003
- v4-0002-pg_restore-Fix-comment-handling-with-no-policies.patch (application/octet-stream) patch v4-0002
On Wed, Aug 27, 2025 at 3:18 PM jian he <jian.universality@gmail.com> wrote: > > Since --no-publications and --no-subscriptions have been around for a long time, > > while --no-policies was added in v18, I wonder if it makes sense to first fix > > the publications and subscriptions cases (and add tests for them) and back-patch > > to all supported versions. Then we can handle the policies case and > > back-patch it > > only to v18. Does that sound reasonable? > > > works for me. So I've split your v2-0001 patch into two patches: * v4-0001 handles comments on publications and subscriptions when --no-publications / --no-subscriptions are specified. This will be backpatched to all supported versions. * v4-0002 handles comments on policies when --no-policies is specified. This will be backpatched to v18, where --no-policies was added. Both v4-0001 and v4-0002 are based on your patch, but I added regression tests for them. > > > 02: make pg_dump dump security label for shared database objects, like > > > subscription, roles. As I understand it, shared objects like roles are handled by pg_dumpall, which already dumps their security labels via pg_shseclabel. Subscriptions are an exception: pg_dump dumps them (and should dump their security labels), but those labels are stored in pg_shseclabel, which pg_dump doesn't query. To fix this, making pg_dump query also pg_shseclabel when dumping subscriptions would work. But your approach, having pg_dump query pg_seclabels (covering both pg_seclabel and pg_shseclabel), is simpler and sufficient. So I like your approach for now. I also noticed pg_dump didn't dump security labels on event triggers, so I extended your patch as v4-0003 to handle those as well. > > > 03: make pg_restore not restore security labels if the associated > > > object is excluded. This patch looks good. I only applied minor cosmetic changes and attached it as v4-0004. Regards, -- Fujii Masao
Commits
-
pg_dump: Remove unnecessary code for security labels on extensions.
- 762faf702c6f 19 (unreleased) landed
-
pg_restore: Fix security label handling with --no-publications/subscriptions.
- a4dbb11bb9ac 13.23 landed
- bc476f8b8b64 14.20 landed
- 5f42008f9030 15.15 landed
- 0870397ccfbd 16.11 landed
- dc8aa2f586d0 17.7 landed
- 7aecc00b3d66 18.0 landed
- 45f50c995fb6 19 (unreleased) landed
-
pg_dump: Fix dumping of security labels on subscriptions and event triggers.
- dff7591a7041 13.23 landed
- 295c0a644af5 14.20 landed
- 165b07efe4e2 15.15 landed
- 20b23784fc31 16.11 landed
- 968141898777 17.7 landed
- 176002c5bfa6 18.0 landed
- 8e5b92928d28 19 (unreleased) landed
-
pg_restore: Fix comment handling with --no-policies.
- 2ddbfede0c61 18.0 landed
- 66dabc06b1b0 19 (unreleased) landed
-
pg_restore: Fix comment handling with --no-publications / --no-subscriptions.
- 8fbd1f8ea2e1 13.23 landed
- db900ec358bd 14.20 landed
- c8ed16050564 15.15 landed
- 97527a5e68d5 16.11 landed
- f7f9c5d65816 17.7 landed
- 77d2b155caf7 18.0 landed
- b54e8dbfe3b1 19 (unreleased) landed
-
Core support for "extensions", which are packages of SQL objects.
- d9572c4e3b47 9.1.0 cited