pg_dump.patch

text/x-patch

Filename: pg_dump.patch
Type: text/x-patch
Part: 1
Message: pg_dump fail to not dump public schema orders

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
src/bin/pg_dump/pg_dump.c 12 4
commit cb4b69e4bba9c1f031b09f27410f4d94ac6c7a52
Author: Adrien Nayrat <adrien_nayrat@ultimatesoftware.com>
Date:   Thu May 28 16:00:16 2020 +0200

    Exclude public schema sooner

diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index dfe43968b8..f7e7d97e6e 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -1525,10 +1525,18 @@ selectDumpableNamespace(NamespaceInfo *nsinfo, Archive *fout)
 	if (table_include_oids.head != NULL)
 		nsinfo->dobj.dump_contains = nsinfo->dobj.dump = DUMP_COMPONENT_NONE;
 	else if (schema_include_oids.head != NULL)
-		nsinfo->dobj.dump_contains = nsinfo->dobj.dump =
-			simple_oid_list_member(&schema_include_oids,
-								   nsinfo->dobj.catId.oid) ?
-			DUMP_COMPONENT_ALL : DUMP_COMPONENT_NONE;
+	{
+		if (strcmp(nsinfo->dobj.name, "public") == 0)
+		{
+			nsinfo->dobj.dump = DUMP_COMPONENT_ACL;
+			nsinfo->dobj.dump_contains = DUMP_COMPONENT_ALL;
+		}
+		else
+			nsinfo->dobj.dump_contains = nsinfo->dobj.dump =
+				simple_oid_list_member(&schema_include_oids,
+									   nsinfo->dobj.catId.oid) ?
+				DUMP_COMPONENT_ALL : DUMP_COMPONENT_NONE;
+	}
 	else if (fout->remoteVersion >= 90600 &&
 			 strcmp(nsinfo->dobj.name, "pg_catalog") == 0)
 	{