From: Petr Jelinek Date: Sat, 20 Dec 2014 07:56:54 +0000 (+0100) Subject: deparse: Handle default security provider. X-Git-Tag: deparse-before-rebase-20150215~18 X-Git-Url: http://git.postgresql.org/gitweb/static/%7B%7Bpguslink%28?a=commitdiff_plain;h=b33d59f3562970721a3a92bf27621464ebef9375;p=2ndquadrant_bdr.git deparse: Handle default security provider. --- diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c index cff7bcbd9b..3c888116a5 100644 --- a/src/backend/commands/seclabel.c +++ b/src/backend/commands/seclabel.c @@ -61,6 +61,11 @@ ExecSecLabelStmt(SecLabelStmt *stmt) (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("must specify provider when multiple security label providers have been loaded"))); provider = (LabelProvider *) linitial(label_provider_list); + /* + * Set the provider in the statement so that DDL deparse can use + * provider explicitly in generated statement. + */ + stmt->provider = (char *) provider->provider_name; } else { diff --git a/src/backend/tcop/deparse_utility.c b/src/backend/tcop/deparse_utility.c index d67ffd5073..f7c0e21ef8 100644 --- a/src/backend/tcop/deparse_utility.c +++ b/src/backend/tcop/deparse_utility.c @@ -3840,6 +3840,8 @@ deparse_SecLabelStmt(Oid objectId, Oid objectSubId, Node *parsetree) ObjectAddress addr; char *fmt; + Assert(node->provider); + if (node->label) { fmt = psprintf("SECURITY LABEL FOR %%{provider}s ON %s %%{identity}s IS %%{label}L",