git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 0110e2e)
pg_restore: Fix security label handling with --no-publications/subscriptions.
2025年9月18日 02:09:15 +0000 (11:09 +0900)
2025年9月18日 02:09:15 +0000 (11:09 +0900)
Previously, pg_restore did not skip security labels on publications or
subscriptions even when --no-publications or --no-subscriptions was specified.
As a result, it could issue SECURITY LABEL commands for objects that were
never created, causing those commands to fail.

This commit fixes the issue by ensuring that security labels on publications
and subscriptions are also skipped when the corresponding options are used.

Backpatch to all supported versions.

Author: Jian He <jian.universality@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CACJufxHCt00pR9h51AVu6+yPD5J7JQn=7dQXxqacj0XyDhc-fA@mail.gmail.com
Backpatch-through: 13


diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 93814152a5fd0e2b99416da877e69435c908f815..59eaecb4ed71ef16adeba3e12a5c873496fb94ed 100644 (file)
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -3081,6 +3081,21 @@ _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH)
if (ropt->no_security_labels && strcmp(te->desc, "SECURITY LABEL") == 0)
return 0;
+ /*
+ * If it's a security label on a publication or a subscription, maybe
+ * ignore it.
+ */
+ if (strcmp(te->desc, "SECURITY LABEL") == 0)
+ {
+ if (ropt->no_publications &&
+ strncmp(te->tag, "PUBLICATION", strlen("PUBLICATION")) == 0)
+ return 0;
+
+ if (ropt->no_subscriptions &&
+ strncmp(te->tag, "SUBSCRIPTION", strlen("SUBSCRIPTION")) == 0)
+ return 0;
+ }
+
/* If it's a subscription, maybe ignore it */
if (ropt->no_subscriptions && strcmp(te->desc, "SUBSCRIPTION") == 0)
return 0;
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /