Fix problems with pg_dump for iheritance, sequences, archive tables.
This commit is contained in:
parent
b6d983559a
commit
a7d417cc2f
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue