Hi hackers,

pg_dump adds an extra space in ALTER DEFAULT PRIVILEGES commands.  AFAICT
it's been this way since the command was first introduced (249724c).  I've
attached a patch to fix it.

This is admittedly just a pet peeve, but maybe it is bothering others, too.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com
diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c
index 9311417f18..694a28f532 100644
--- a/src/bin/pg_dump/dumputils.c
+++ b/src/bin/pg_dump/dumputils.c
@@ -184,7 +184,9 @@ buildACLCommands(const char *name, const char *subname, const char *nspname,
 							  prefix, privs->data, type);
 			if (nspname && *nspname)
 				appendPQExpBuffer(firstsql, "%s.", fmtId(nspname));
-			appendPQExpBuffer(firstsql, "%s FROM ", name);
+			if (name && *name)
+				appendPQExpBuffer(firstsql, "%s ", name);
+			appendPQExpBufferStr(firstsql, "FROM ");
 			if (grantee->len == 0)
 				appendPQExpBufferStr(firstsql, "PUBLIC;\n");
 			else
@@ -253,7 +255,9 @@ buildACLCommands(const char *name, const char *subname, const char *nspname,
 									  prefix, privs->data, type);
 					if (nspname && *nspname)
 						appendPQExpBuffer(thissql, "%s.", fmtId(nspname));
-					appendPQExpBuffer(thissql, "%s TO ", name);
+					if (name && *name)
+						appendPQExpBuffer(thissql, "%s ", name);
+					appendPQExpBufferStr(thissql, "TO ");
 					if (grantee->len == 0)
 						appendPQExpBufferStr(thissql, "PUBLIC;\n");
 					else
@@ -265,7 +269,9 @@ buildACLCommands(const char *name, const char *subname, const char *nspname,
 									  prefix, privswgo->data, type);
 					if (nspname && *nspname)
 						appendPQExpBuffer(thissql, "%s.", fmtId(nspname));
-					appendPQExpBuffer(thissql, "%s TO ", name);
+					if (name && *name)
+						appendPQExpBuffer(thissql, "%s ", name);
+					appendPQExpBufferStr(thissql, "TO ");
 					if (grantee->len == 0)
 						appendPQExpBufferStr(thissql, "PUBLIC");
 					else
diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl
index 6656222363..4732ee2e4a 100644
--- a/src/bin/pg_dump/t/002_pg_dump.pl
+++ b/src/bin/pg_dump/t/002_pg_dump.pl
@@ -563,7 +563,7 @@ my %tests = (
 		regexp => qr/^
 			\QALTER DEFAULT PRIVILEGES \E
 			\QFOR ROLE regress_dump_test_role IN SCHEMA dump_test \E
-			\QGRANT SELECT ON TABLES  TO regress_dump_test_role;\E
+			\QGRANT SELECT ON TABLES TO regress_dump_test_role;\E
 			/xm,
 		like =>
 		  { %full_runs, %dump_test_schema_runs, section_post_data => 1, },
@@ -582,7 +582,7 @@ my %tests = (
 		regexp => qr/^
 			\QALTER DEFAULT PRIVILEGES \E
 			\QFOR ROLE regress_dump_test_role IN SCHEMA dump_test \E
-			\QGRANT ALL ON FUNCTIONS  TO regress_dump_test_role;\E
+			\QGRANT ALL ON FUNCTIONS TO regress_dump_test_role;\E
 			/xm,
 		like =>
 		  { %full_runs, %dump_test_schema_runs, section_post_data => 1, },
@@ -600,7 +600,7 @@ my %tests = (
 		regexp => qr/^
 			\QALTER DEFAULT PRIVILEGES \E
 			\QFOR ROLE regress_dump_test_role \E
-			\QREVOKE ALL ON FUNCTIONS  FROM PUBLIC;\E
+			\QREVOKE ALL ON FUNCTIONS FROM PUBLIC;\E
 			/xm,
 		like => { %full_runs, section_post_data => 1, },
 		unlike => { no_privs => 1, },
@@ -615,10 +615,10 @@ my %tests = (
 		regexp => qr/^
 			\QALTER DEFAULT PRIVILEGES \E
 			\QFOR ROLE regress_dump_test_role \E
-			\QREVOKE ALL ON TABLES  FROM regress_dump_test_role;\E\n
+			\QREVOKE ALL ON TABLES FROM regress_dump_test_role;\E\n
 			\QALTER DEFAULT PRIVILEGES \E
 			\QFOR ROLE regress_dump_test_role \E
-			\QGRANT INSERT,REFERENCES,DELETE,TRIGGER,TRUNCATE,VACUUM,ANALYZE,UPDATE ON TABLES  TO regress_dump_test_role;\E
+			\QGRANT INSERT,REFERENCES,DELETE,TRIGGER,TRUNCATE,VACUUM,ANALYZE,UPDATE ON TABLES TO regress_dump_test_role;\E
 			/xm,
 		like => { %full_runs, section_post_data => 1, },
 		unlike => { no_privs => 1, },

Reply via email to