mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Teach pg_dump to dump comments on RLS policy objects.
This was unaccountably omitted in the original RLS patch. The SQL syntax is basically the same as for comments on triggers, so crib code from dumpTrigger(). Per report from Marc Munro. Back-patch to all supported branches. Discussion: https://postgr.es/m/1581889298.18009.15.camel@bloodnok.com
This commit is contained in:
parent
12bea22a78
commit
bd2cd138f9
@ -3618,6 +3618,8 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
|
||||
TableInfo *tbinfo = polinfo->poltable;
|
||||
PQExpBuffer query;
|
||||
PQExpBuffer delqry;
|
||||
PQExpBuffer polprefix;
|
||||
char *qtabname;
|
||||
const char *cmd;
|
||||
char *tag;
|
||||
|
||||
@ -3675,6 +3677,9 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
|
||||
|
||||
query = createPQExpBuffer();
|
||||
delqry = createPQExpBuffer();
|
||||
polprefix = createPQExpBuffer();
|
||||
|
||||
qtabname = pg_strdup(fmtId(tbinfo->dobj.name));
|
||||
|
||||
appendPQExpBuffer(query, "CREATE POLICY %s", fmtId(polinfo->polname));
|
||||
|
||||
@ -3695,6 +3700,9 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
|
||||
appendPQExpBuffer(delqry, "DROP POLICY %s", fmtId(polinfo->polname));
|
||||
appendPQExpBuffer(delqry, " ON %s;\n", fmtQualifiedDumpable(tbinfo));
|
||||
|
||||
appendPQExpBuffer(polprefix, "POLICY %s ON",
|
||||
fmtId(polinfo->polname));
|
||||
|
||||
tag = psprintf("%s %s", tbinfo->dobj.name, polinfo->dobj.name);
|
||||
|
||||
if (polinfo->dobj.dump & DUMP_COMPONENT_POLICY)
|
||||
@ -3708,9 +3716,16 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
|
||||
NULL, 0,
|
||||
NULL, NULL);
|
||||
|
||||
if (polinfo->dobj.dump & DUMP_COMPONENT_COMMENT)
|
||||
dumpComment(fout, polprefix->data, qtabname,
|
||||
tbinfo->dobj.namespace->dobj.name, tbinfo->rolname,
|
||||
polinfo->dobj.catId, 0, polinfo->dobj.dumpId);
|
||||
|
||||
free(tag);
|
||||
destroyPQExpBuffer(query);
|
||||
destroyPQExpBuffer(delqry);
|
||||
destroyPQExpBuffer(polprefix);
|
||||
free(qtabname);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user