🌐 AI搜索 & 代理 主页
Skip to content

Commit 7aecc00

Browse files
committed
pg_restore: Fix security label handling with --no-publications/subscriptions.
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
1 parent 4eab456 commit 7aecc00

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/bin/pg_dump/pg_backup_archiver.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3066,6 +3066,21 @@ _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH)
30663066
if (ropt->no_security_labels && strcmp(te->desc, "SECURITY LABEL") == 0)
30673067
return 0;
30683068

3069+
/*
3070+
* If it's a security label on a publication or a subscription, maybe
3071+
* ignore it.
3072+
*/
3073+
if (strcmp(te->desc, "SECURITY LABEL") == 0)
3074+
{
3075+
if (ropt->no_publications &&
3076+
strncmp(te->tag, "PUBLICATION", strlen("PUBLICATION")) == 0)
3077+
return 0;
3078+
3079+
if (ropt->no_subscriptions &&
3080+
strncmp(te->tag, "SUBSCRIPTION", strlen("SUBSCRIPTION")) == 0)
3081+
return 0;
3082+
}
3083+
30693084
/* If it's a subscription, maybe ignore it */
30703085
if (ropt->no_subscriptions && strcmp(te->desc, "SUBSCRIPTION") == 0)
30713086
return 0;

0 commit comments

Comments
 (0)