diff --git a/src/backend/catalog/pg_operator.c b/src/backend/catalog/pg_operator.c
index 173de357d1d947fd9386e705ac513d803e8fcb83..6a59690ce7c655773d05110a6ca1fbcf348b3d4a 100644
--- a/src/backend/catalog/pg_operator.c
+++ b/src/backend/catalog/pg_operator.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.8 1996/12/26 17:46:07 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.9 1997/07/23 17:14:34 momjian Exp $
  *
  * NOTES
  *    these routines moved here from commands/define.c and somewhat cleaned up.
@@ -237,7 +237,7 @@ OperatorShellMakeWithOpenRelation(Relation pg_operator_desc,
      */
     i = 0;
     values[i++] =  PointerGetDatum(operatorName);
-    values[i++] =  ObjectIdGetDatum(InvalidOid);
+    values[i++] =  Int32GetDatum(GetUserId());
     values[i++] =  (Datum) (uint16) 0;
     
     values[i++] = (Datum)'b';	/* fill oprkind with a bogus value */
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 7163391a4f0da2de1e90a5925a9bd803598efd00..57dfe61d8b737958781292ab8e27e1c409b104a4 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -21,7 +21,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.33 1997/06/20 02:20:17 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.34 1997/07/23 17:14:59 momjian Exp $
  *
  * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
  *
@@ -738,137 +738,146 @@ getOperators(int *numOprs)
 void
 clearTypeInfo(TypeInfo *tp, int numTypes)
 {
-int i;
-for(i=0;i<numTypes;++i) {
-    if(tp[i].oid) free(tp[i].oid);
-    if(tp[i].typowner) free(tp[i].typowner);
-    if(tp[i].typname) free(tp[i].typname);
-    if(tp[i].typlen) free(tp[i].typlen);
-    if(tp[i].typprtlen) free(tp[i].typprtlen);
-    if(tp[i].typinput) free(tp[i].typinput);
-    if(tp[i].typoutput) free(tp[i].typoutput);
-    if(tp[i].typreceive) free(tp[i].typreceive);
-    if(tp[i].typsend) free(tp[i].typsend);
-    if(tp[i].typelem) free(tp[i].typelem);
-    if(tp[i].typdelim) free(tp[i].typdelim);
-    if(tp[i].typdefault) free(tp[i].typdefault);
-    if(tp[i].typrelid) free(tp[i].typrelid);
-    if(tp[i].usename) free(tp[i].usename);
-	}
-free(tp);
+    int i;
+    for(i=0;i<numTypes;++i) {
+        if(tp[i].oid) free(tp[i].oid);
+        if(tp[i].typowner) free(tp[i].typowner);
+        if(tp[i].typname) free(tp[i].typname);
+        if(tp[i].typlen) free(tp[i].typlen);
+        if(tp[i].typprtlen) free(tp[i].typprtlen);
+        if(tp[i].typinput) free(tp[i].typinput);
+        if(tp[i].typoutput) free(tp[i].typoutput);
+        if(tp[i].typreceive) free(tp[i].typreceive);
+        if(tp[i].typsend) free(tp[i].typsend);
+        if(tp[i].typelem) free(tp[i].typelem);
+        if(tp[i].typdelim) free(tp[i].typdelim);
+        if(tp[i].typdefault) free(tp[i].typdefault);
+        if(tp[i].typrelid) free(tp[i].typrelid);
+        if(tp[i].usename) free(tp[i].usename);
+    }
+    free(tp);
 }
 
 void
 clearFuncInfo (FuncInfo *fun, int numFuncs)
 {
-int i,a;
-if(!fun) return;
-for(i=0;i<numFuncs;++i) {
-    if(fun[i].oid) free(fun[i].oid);
-    if(fun[i].proname) free(fun[i].proname);
-    if(fun[i].usename) free(fun[i].usename);
-    for(a=0;a<8;++a)
-    if(fun[i].argtypes[a]) free(fun[i].argtypes[a]);
-    if(fun[i].prorettype) free(fun[i].prorettype);
-    if(fun[i].prosrc) free(fun[i].prosrc);
-    if(fun[i].probin) free(fun[i].probin);
-	}
-free(fun);
+    int i,a;
+    if(!fun) return;
+    for(i=0;i<numFuncs;++i) {
+        if(fun[i].oid) free(fun[i].oid);
+        if(fun[i].proname) free(fun[i].proname);
+        if(fun[i].usename) free(fun[i].usename);
+        for(a=0;a<8;++a)
+            if(fun[i].argtypes[a]) free(fun[i].argtypes[a]);
+        if(fun[i].prorettype) free(fun[i].prorettype);
+        if(fun[i].prosrc) free(fun[i].prosrc);
+        if(fun[i].probin) free(fun[i].probin);
+    }
+    free(fun);
 }
 
 void
 clearTableInfo(TableInfo *tblinfo, int numTables)
 {
-int i,j;
-for(i=0;i<numTables;++i) {
+    int i,j;
+    for(i=0;i<numTables;++i) {
+
+        /* skip archive tables */
+        if (isArchiveName(tblinfo[i].relname))
+            continue;
+        
+        if ( tblinfo[i].sequence )
+            continue;
+
         if(tblinfo[i].oid) free (tblinfo[i].oid);
         if(tblinfo[i].relname) free (tblinfo[i].relname);
         if(tblinfo[i].relarch) free (tblinfo[i].relarch);
         if(tblinfo[i].relacl) free (tblinfo[i].relacl);
-	for (j=0;j<tblinfo[i].numatts;j++) {
+        for(j=0;j<tblinfo[i].numatts;j++) {
             if(tblinfo[i].attnames[j]) free (tblinfo[i].attnames[j]);
             if(tblinfo[i].typnames[j]) free (tblinfo[i].typnames[j]);
-	    }
-    if(tblinfo[i].attlen) free((int *)tblinfo[i].attlen);
-    if(tblinfo[i].inhAttrs) free((int *)tblinfo[i].inhAttrs);
-    if(tblinfo[i].attnames) free (tblinfo[i].attnames);
-    if(tblinfo[i].typnames) free (tblinfo[i].typnames);
-    if(tblinfo[i].usename) free (tblinfo[i].usename);
-     }
-free(tblinfo);
+        }
+        if(tblinfo[i].attlen) free((int *)tblinfo[i].attlen);
+        if(tblinfo[i].inhAttrs) free((int *)tblinfo[i].inhAttrs);
+        if(tblinfo[i].attnames) free (tblinfo[i].attnames);
+        if(tblinfo[i].typnames) free (tblinfo[i].typnames);
+        if(tblinfo[i].usename) free (tblinfo[i].usename);
+    }
+    free(tblinfo);
 }
 
 void 
 clearInhInfo (InhInfo *inh, int numInherits) {
-int i;
-if(!inh) return;
-for(i=0;i<numInherits;++i) {
-    if(inh[i].oid) free(inh[i].oid);
-    if(inh[i].inhrel) free(inh[i].inhrel);
-    if(inh[i].inhparent) free(inh[i].inhparent);}
-free(inh);
+    int i;
+    if(!inh) return;
+    for(i=0;i<numInherits;++i) {
+        if(inh[i].inhrel) free(inh[i].inhrel);
+        if(inh[i].inhparent) free(inh[i].inhparent);
+    }
+    free(inh);
 }
 
 void
 clearOprInfo(OprInfo *opr, int numOprs){
-int i;
-if(!opr) return;
-for(i=0;i<numOprs;++i) {
-     if(opr[i].oid) free(opr[i].oid);
-     if(opr[i].oprname) free(opr[i].oprname);
-     if(opr[i].oprkind) free(opr[i].oprkind);
-     if(opr[i].oprcode) free(opr[i].oprcode);
-     if(opr[i].oprleft) free(opr[i].oprleft);
-     if(opr[i].oprright) free(opr[i].oprright);
-     if(opr[i].oprcom) free(opr[i].oprcom);
-     if(opr[i].oprnegate) free(opr[i].oprnegate);
-     if(opr[i].oprrest) free(opr[i].oprrest);
-     if(opr[i].oprjoin) free(opr[i].oprjoin);
-     if(opr[i].oprcanhash) free(opr[i].oprcanhash);
-     if(opr[i].oprlsortop) free(opr[i].oprlsortop);
-     if(opr[i].oprrsortop) free(opr[i].oprrsortop);
-     if(opr[i].usename) free(opr[i].usename);
-	}
-free(opr);
+    int i;
+    if(!opr) return;
+    for(i=0;i<numOprs;++i) {
+        if(opr[i].oid) free(opr[i].oid);
+        if(opr[i].oprname) free(opr[i].oprname);
+        if(opr[i].oprkind) free(opr[i].oprkind);
+        if(opr[i].oprcode) free(opr[i].oprcode);
+        if(opr[i].oprleft) free(opr[i].oprleft);
+        if(opr[i].oprright) free(opr[i].oprright);
+        if(opr[i].oprcom) free(opr[i].oprcom);
+        if(opr[i].oprnegate) free(opr[i].oprnegate);
+        if(opr[i].oprrest) free(opr[i].oprrest);
+        if(opr[i].oprjoin) free(opr[i].oprjoin);
+        if(opr[i].oprcanhash) free(opr[i].oprcanhash);
+        if(opr[i].oprlsortop) free(opr[i].oprlsortop);
+        if(opr[i].oprrsortop) free(opr[i].oprrsortop);
+        if(opr[i].usename) free(opr[i].usename);
+    }
+    free(opr);
 }
 
 void
 clearIndInfo(IndInfo *ind, int numIndices)
 {
-int i,a;
-if(!ind) return;
-for(i=0;i<numIndices;++i) {
-    if(ind[i].indexrelname) free(ind[i].indexrelname);
-    if(ind[i].indrelname) free(ind[i].indrelname);
-    if(ind[i].indamname) free(ind[i].indamname);
-    if(ind[i].indproc) free(ind[i].indproc);
-    if(ind[i].indisunique) free(ind[i].indisunique);
-    for(a=0;a<INDEX_MAX_KEYS;++a) {
-    if(ind[i].indkey[a]) free(ind[i].indkey[a]);
-    if(ind[i].indclass[a]) free(ind[i].indclass[a]);}
+    int i,a;
+    if(!ind) return;
+    for(i=0;i<numIndices;++i) {
+        if(ind[i].indexrelname) free(ind[i].indexrelname);
+        if(ind[i].indrelname) free(ind[i].indrelname);
+        if(ind[i].indamname) free(ind[i].indamname);
+        if(ind[i].indproc) free(ind[i].indproc);
+        if(ind[i].indisunique) free(ind[i].indisunique);
+        for(a=0;a<INDEX_MAX_KEYS;++a) {
+            if(ind[i].indkey[a]) free(ind[i].indkey[a]);
+            if(ind[i].indclass[a]) free(ind[i].indclass[a]);
+        }
     }
-free(ind);
+    free(ind);
 }
 
 void
 clearAggInfo(AggInfo *agginfo, int numArgs)
 {
-int i;
-if(!agginfo) return;
-for(i=0;i<numArgs;++i) {
-    if(agginfo[i].oid) free (agginfo[i].oid);
-    if(agginfo[i].aggname) free (agginfo[i].aggname);
-    if(agginfo[i].aggtransfn1) free (agginfo[i].aggtransfn1);
-    if(agginfo[i].aggtransfn2) free (agginfo[i].aggtransfn2);
-    if(agginfo[i].aggfinalfn) free (agginfo[i].aggfinalfn);
-    if(agginfo[i].aggtranstype1) free (agginfo[i].aggtranstype1);
-    if(agginfo[i].aggbasetype) free (agginfo[i].aggbasetype);
-    if(agginfo[i].aggtranstype2) free (agginfo[i].aggtranstype2);
-    if(agginfo[i].agginitval1) free (agginfo[i].agginitval1);
-    if(agginfo[i].agginitval2) free (agginfo[i].agginitval2);
-    if(agginfo[i].usename) free (agginfo[i].usename);
-	}
-free (agginfo);
+    int i;
+    if(!agginfo) return;
+    for(i=0;i<numArgs;++i) {
+        if(agginfo[i].oid) free (agginfo[i].oid);
+        if(agginfo[i].aggname) free (agginfo[i].aggname);
+        if(agginfo[i].aggtransfn1) free (agginfo[i].aggtransfn1);
+        if(agginfo[i].aggtransfn2) free (agginfo[i].aggtransfn2);
+        if(agginfo[i].aggfinalfn) free (agginfo[i].aggfinalfn);
+        if(agginfo[i].aggtranstype1) free (agginfo[i].aggtranstype1);
+        if(agginfo[i].aggbasetype) free (agginfo[i].aggbasetype);
+        if(agginfo[i].aggtranstype2) free (agginfo[i].aggtranstype2);
+        if(agginfo[i].agginitval1) free (agginfo[i].agginitval1);
+        if(agginfo[i].agginitval2) free (agginfo[i].agginitval2);
+        if(agginfo[i].usename) free (agginfo[i].usename);
+    }
+    free (agginfo);
 }
 
 /*
diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h
index 702fb0ea7e8fe37667e9598add788ce2cbca26e6..e65eb6e5e7fc9281a9605264444da41e94bd81a7 100644
--- a/src/bin/pg_dump/pg_dump.h
+++ b/src/bin/pg_dump/pg_dump.h
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_dump.h,v 1.16 1997/06/21 16:08:15 momjian Exp $
+ * $Id: pg_dump.h,v 1.17 1997/07/23 17:15:13 momjian Exp $
  *
  * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
  *
@@ -85,7 +85,6 @@ typedef struct _tableInfo {
 } TableInfo;
 
 typedef struct _inhInfo {
-    char *oid;
     char *inhrel;
     char *inhparent;
 } InhInfo;