]> granicus.if.org Git - postgresql/commitdiff
Reverse out pg_dump changes.
authorBruce Momjian <bruce@momjian.us>
Tue, 7 Apr 1998 22:00:37 +0000 (22:00 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 7 Apr 1998 22:00:37 +0000 (22:00 +0000)
src/bin/pg_dump/pg_dump.c

index 0961e741a72210b2216ee67ed3f297e901e077dc..6ca2301c6452eafd6f3d7645b1c027087a4ade75 100644 (file)
@@ -21,7 +21,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.68 1998/04/07 16:41:11 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.69 1998/04/07 22:00:37 momjian Exp $
  *
  * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
  *
@@ -2507,7 +2507,34 @@ dumpTables(FILE *fout, TableInfo *tblinfo, int numTables,
                        fputs(q, fout);
 
                        if (acls)
-                               dumpACL(fout, tblinfo[i]);
+                       {
+                               ACLlist = ParseACL(tblinfo[i].relacl, &l);
+                               if (ACLlist == (ACL *) NULL)
+                               {
+                                       if (l == 0)
+                                               continue;
+                                       else
+                                       {
+                                               fprintf(stderr, "Could not parse ACL list for %s...Exiting!\n",
+                                                               tblinfo[i].relname);
+                                               exit_nicely(g_conn);
+                                       }
+                               }
+
+                               /* Revoke Default permissions for PUBLIC */
+                               fprintf(fout,
+                                               "REVOKE ALL on %s from PUBLIC;\n",
+                                               tblinfo[i].relname);
+
+                               for (k = 0; k < l; k++)
+                               {
+                                       if (ACLlist[k].privledges != (char *) NULL)
+                                               fprintf(fout,
+                                                               "GRANT %s on %s to %s;\n",
+                                                               ACLlist[k].privledges, tblinfo[i].relname,
+                                                               ACLlist[k].user);
+                               }
+                       }
                }
        }
 }