aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_dump/pg_dump.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index cd325c0484e..6763a899d81 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -3480,8 +3480,8 @@ getPolicies(Archive *fout, TableInfo tblinfo[], int numTables)
/*
* Get row security enabled information for the table. We represent
- * RLS enabled on a table by creating PolicyInfo object with an empty
- * policy.
+ * RLS being enabled on a table by creating a PolicyInfo object with
+ * null polname.
*/
if (tbinfo->rowsec)
{
@@ -3622,8 +3622,13 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
query = createPQExpBuffer();
appendPQExpBuffer(query, "ALTER TABLE %s ENABLE ROW LEVEL SECURITY;",
- fmtQualifiedDumpable(polinfo));
+ fmtQualifiedDumpable(tbinfo));
+ /*
+ * We must emit the ROW SECURITY object's dependency on its table
+ * explicitly, because it will not match anything in pg_depend (unlike
+ * the case for other PolicyInfo objects).
+ */
if (polinfo->dobj.dump & DUMP_COMPONENT_POLICY)
ArchiveEntry(fout, polinfo->dobj.catId, polinfo->dobj.dumpId,
polinfo->dobj.name,
@@ -3632,7 +3637,7 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
tbinfo->rolname, false,
"ROW SECURITY", SECTION_POST_DATA,
query->data, "", NULL,
- NULL, 0,
+ &(tbinfo->dobj.dumpId), 1,
NULL, NULL);
destroyPQExpBuffer(query);