Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita7d417c

Browse files
committed
Fix problems with pg_dump for iheritance, sequences, archive tables.
1 parentb6d9835 commita7d417c

File tree

3 files changed

+109
-101
lines changed

3 files changed

+109
-101
lines changed

‎src/backend/catalog/pg_operator.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.8 1996/12/26 17:46:07 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.9 1997/07/23 17:14:34 momjian Exp $
1111
*
1212
* NOTES
1313
* these routines moved here from commands/define.c and somewhat cleaned up.
@@ -237,7 +237,7 @@ OperatorShellMakeWithOpenRelation(Relation pg_operator_desc,
237237
*/
238238
i=0;
239239
values[i++]=PointerGetDatum(operatorName);
240-
values[i++]=ObjectIdGetDatum(InvalidOid);
240+
values[i++]=Int32GetDatum(GetUserId());
241241
values[i++]= (Datum) (uint16)0;
242242

243243
values[i++]= (Datum)'b';/* fill oprkind with a bogus value */

‎src/bin/pg_dump/pg_dump.c

Lines changed: 106 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
*
2222
*
2323
* IDENTIFICATION
24-
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.33 1997/06/20 02:20:17 momjian Exp $
24+
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.34 1997/07/23 17:14:59 momjian Exp $
2525
*
2626
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
2727
*
@@ -738,137 +738,146 @@ getOperators(int *numOprs)
738738
void
739739
clearTypeInfo(TypeInfo*tp,intnumTypes)
740740
{
741-
inti;
742-
for(i=0;i<numTypes;++i) {
743-
if(tp[i].oid)free(tp[i].oid);
744-
if(tp[i].typowner)free(tp[i].typowner);
745-
if(tp[i].typname)free(tp[i].typname);
746-
if(tp[i].typlen)free(tp[i].typlen);
747-
if(tp[i].typprtlen)free(tp[i].typprtlen);
748-
if(tp[i].typinput)free(tp[i].typinput);
749-
if(tp[i].typoutput)free(tp[i].typoutput);
750-
if(tp[i].typreceive)free(tp[i].typreceive);
751-
if(tp[i].typsend)free(tp[i].typsend);
752-
if(tp[i].typelem)free(tp[i].typelem);
753-
if(tp[i].typdelim)free(tp[i].typdelim);
754-
if(tp[i].typdefault)free(tp[i].typdefault);
755-
if(tp[i].typrelid)free(tp[i].typrelid);
756-
if(tp[i].usename)free(tp[i].usename);
757-
}
758-
free(tp);
741+
inti;
742+
for(i=0;i<numTypes;++i) {
743+
if(tp[i].oid)free(tp[i].oid);
744+
if(tp[i].typowner)free(tp[i].typowner);
745+
if(tp[i].typname)free(tp[i].typname);
746+
if(tp[i].typlen)free(tp[i].typlen);
747+
if(tp[i].typprtlen)free(tp[i].typprtlen);
748+
if(tp[i].typinput)free(tp[i].typinput);
749+
if(tp[i].typoutput)free(tp[i].typoutput);
750+
if(tp[i].typreceive)free(tp[i].typreceive);
751+
if(tp[i].typsend)free(tp[i].typsend);
752+
if(tp[i].typelem)free(tp[i].typelem);
753+
if(tp[i].typdelim)free(tp[i].typdelim);
754+
if(tp[i].typdefault)free(tp[i].typdefault);
755+
if(tp[i].typrelid)free(tp[i].typrelid);
756+
if(tp[i].usename)free(tp[i].usename);
757+
}
758+
free(tp);
759759
}
760760

761761
void
762762
clearFuncInfo (FuncInfo*fun,intnumFuncs)
763763
{
764-
inti,a;
765-
if(!fun)return;
766-
for(i=0;i<numFuncs;++i) {
767-
if(fun[i].oid)free(fun[i].oid);
768-
if(fun[i].proname)free(fun[i].proname);
769-
if(fun[i].usename)free(fun[i].usename);
770-
for(a=0;a<8;++a)
771-
if(fun[i].argtypes[a])free(fun[i].argtypes[a]);
772-
if(fun[i].prorettype)free(fun[i].prorettype);
773-
if(fun[i].prosrc)free(fun[i].prosrc);
774-
if(fun[i].probin)free(fun[i].probin);
775-
}
776-
free(fun);
764+
inti,a;
765+
if(!fun)return;
766+
for(i=0;i<numFuncs;++i) {
767+
if(fun[i].oid)free(fun[i].oid);
768+
if(fun[i].proname)free(fun[i].proname);
769+
if(fun[i].usename)free(fun[i].usename);
770+
for(a=0;a<8;++a)
771+
if(fun[i].argtypes[a])free(fun[i].argtypes[a]);
772+
if(fun[i].prorettype)free(fun[i].prorettype);
773+
if(fun[i].prosrc)free(fun[i].prosrc);
774+
if(fun[i].probin)free(fun[i].probin);
775+
}
776+
free(fun);
777777
}
778778

779779
void
780780
clearTableInfo(TableInfo*tblinfo,intnumTables)
781781
{
782-
inti,j;
783-
for(i=0;i<numTables;++i) {
782+
inti,j;
783+
for(i=0;i<numTables;++i) {
784+
785+
/* skip archive tables */
786+
if (isArchiveName(tblinfo[i].relname))
787+
continue;
788+
789+
if (tblinfo[i].sequence )
790+
continue;
791+
784792
if(tblinfo[i].oid)free (tblinfo[i].oid);
785793
if(tblinfo[i].relname)free (tblinfo[i].relname);
786794
if(tblinfo[i].relarch)free (tblinfo[i].relarch);
787795
if(tblinfo[i].relacl)free (tblinfo[i].relacl);
788-
for(j=0;j<tblinfo[i].numatts;j++) {
796+
for(j=0;j<tblinfo[i].numatts;j++) {
789797
if(tblinfo[i].attnames[j])free (tblinfo[i].attnames[j]);
790798
if(tblinfo[i].typnames[j])free (tblinfo[i].typnames[j]);
791-
}
792-
if(tblinfo[i].attlen)free((int*)tblinfo[i].attlen);
793-
if(tblinfo[i].inhAttrs)free((int*)tblinfo[i].inhAttrs);
794-
if(tblinfo[i].attnames)free (tblinfo[i].attnames);
795-
if(tblinfo[i].typnames)free (tblinfo[i].typnames);
796-
if(tblinfo[i].usename)free (tblinfo[i].usename);
797-
}
798-
free(tblinfo);
799+
}
800+
if(tblinfo[i].attlen)free((int*)tblinfo[i].attlen);
801+
if(tblinfo[i].inhAttrs)free((int*)tblinfo[i].inhAttrs);
802+
if(tblinfo[i].attnames)free (tblinfo[i].attnames);
803+
if(tblinfo[i].typnames)free (tblinfo[i].typnames);
804+
if(tblinfo[i].usename)free (tblinfo[i].usename);
805+
}
806+
free(tblinfo);
799807
}
800808

801809
void
802810
clearInhInfo (InhInfo*inh,intnumInherits) {
803-
inti;
804-
if(!inh)return;
805-
for(i=0;i<numInherits;++i) {
806-
if(inh[i].oid)free(inh[i].oid);
807-
if(inh[i].inhrel)free(inh[i].inhrel);
808-
if(inh[i].inhparent)free(inh[i].inhparent);}
809-
free(inh);
811+
inti;
812+
if(!inh)return;
813+
for(i=0;i<numInherits;++i) {
814+
if(inh[i].inhrel)free(inh[i].inhrel);
815+
if(inh[i].inhparent)free(inh[i].inhparent);
816+
}
817+
free(inh);
810818
}
811819

812820
void
813821
clearOprInfo(OprInfo*opr,intnumOprs){
814-
inti;
815-
if(!opr)return;
816-
for(i=0;i<numOprs;++i) {
817-
if(opr[i].oid)free(opr[i].oid);
818-
if(opr[i].oprname)free(opr[i].oprname);
819-
if(opr[i].oprkind)free(opr[i].oprkind);
820-
if(opr[i].oprcode)free(opr[i].oprcode);
821-
if(opr[i].oprleft)free(opr[i].oprleft);
822-
if(opr[i].oprright)free(opr[i].oprright);
823-
if(opr[i].oprcom)free(opr[i].oprcom);
824-
if(opr[i].oprnegate)free(opr[i].oprnegate);
825-
if(opr[i].oprrest)free(opr[i].oprrest);
826-
if(opr[i].oprjoin)free(opr[i].oprjoin);
827-
if(opr[i].oprcanhash)free(opr[i].oprcanhash);
828-
if(opr[i].oprlsortop)free(opr[i].oprlsortop);
829-
if(opr[i].oprrsortop)free(opr[i].oprrsortop);
830-
if(opr[i].usename)free(opr[i].usename);
831-
}
832-
free(opr);
822+
inti;
823+
if(!opr)return;
824+
for(i=0;i<numOprs;++i) {
825+
if(opr[i].oid)free(opr[i].oid);
826+
if(opr[i].oprname)free(opr[i].oprname);
827+
if(opr[i].oprkind)free(opr[i].oprkind);
828+
if(opr[i].oprcode)free(opr[i].oprcode);
829+
if(opr[i].oprleft)free(opr[i].oprleft);
830+
if(opr[i].oprright)free(opr[i].oprright);
831+
if(opr[i].oprcom)free(opr[i].oprcom);
832+
if(opr[i].oprnegate)free(opr[i].oprnegate);
833+
if(opr[i].oprrest)free(opr[i].oprrest);
834+
if(opr[i].oprjoin)free(opr[i].oprjoin);
835+
if(opr[i].oprcanhash)free(opr[i].oprcanhash);
836+
if(opr[i].oprlsortop)free(opr[i].oprlsortop);
837+
if(opr[i].oprrsortop)free(opr[i].oprrsortop);
838+
if(opr[i].usename)free(opr[i].usename);
839+
}
840+
free(opr);
833841
}
834842

835843
void
836844
clearIndInfo(IndInfo*ind,intnumIndices)
837845
{
838-
inti,a;
839-
if(!ind)return;
840-
for(i=0;i<numIndices;++i) {
841-
if(ind[i].indexrelname)free(ind[i].indexrelname);
842-
if(ind[i].indrelname)free(ind[i].indrelname);
843-
if(ind[i].indamname)free(ind[i].indamname);
844-
if(ind[i].indproc)free(ind[i].indproc);
845-
if(ind[i].indisunique)free(ind[i].indisunique);
846-
for(a=0;a<INDEX_MAX_KEYS;++a) {
847-
if(ind[i].indkey[a])free(ind[i].indkey[a]);
848-
if(ind[i].indclass[a])free(ind[i].indclass[a]);}
846+
inti,a;
847+
if(!ind)return;
848+
for(i=0;i<numIndices;++i) {
849+
if(ind[i].indexrelname)free(ind[i].indexrelname);
850+
if(ind[i].indrelname)free(ind[i].indrelname);
851+
if(ind[i].indamname)free(ind[i].indamname);
852+
if(ind[i].indproc)free(ind[i].indproc);
853+
if(ind[i].indisunique)free(ind[i].indisunique);
854+
for(a=0;a<INDEX_MAX_KEYS;++a) {
855+
if(ind[i].indkey[a])free(ind[i].indkey[a]);
856+
if(ind[i].indclass[a])free(ind[i].indclass[a]);
857+
}
849858
}
850-
free(ind);
859+
free(ind);
851860
}
852861

853862
void
854863
clearAggInfo(AggInfo*agginfo,intnumArgs)
855864
{
856-
inti;
857-
if(!agginfo)return;
858-
for(i=0;i<numArgs;++i) {
859-
if(agginfo[i].oid)free (agginfo[i].oid);
860-
if(agginfo[i].aggname)free (agginfo[i].aggname);
861-
if(agginfo[i].aggtransfn1)free (agginfo[i].aggtransfn1);
862-
if(agginfo[i].aggtransfn2)free (agginfo[i].aggtransfn2);
863-
if(agginfo[i].aggfinalfn)free (agginfo[i].aggfinalfn);
864-
if(agginfo[i].aggtranstype1)free (agginfo[i].aggtranstype1);
865-
if(agginfo[i].aggbasetype)free (agginfo[i].aggbasetype);
866-
if(agginfo[i].aggtranstype2)free (agginfo[i].aggtranstype2);
867-
if(agginfo[i].agginitval1)free (agginfo[i].agginitval1);
868-
if(agginfo[i].agginitval2)free (agginfo[i].agginitval2);
869-
if(agginfo[i].usename)free (agginfo[i].usename);
870-
}
871-
free (agginfo);
865+
inti;
866+
if(!agginfo)return;
867+
for(i=0;i<numArgs;++i) {
868+
if(agginfo[i].oid)free (agginfo[i].oid);
869+
if(agginfo[i].aggname)free (agginfo[i].aggname);
870+
if(agginfo[i].aggtransfn1)free (agginfo[i].aggtransfn1);
871+
if(agginfo[i].aggtransfn2)free (agginfo[i].aggtransfn2);
872+
if(agginfo[i].aggfinalfn)free (agginfo[i].aggfinalfn);
873+
if(agginfo[i].aggtranstype1)free (agginfo[i].aggtranstype1);
874+
if(agginfo[i].aggbasetype)free (agginfo[i].aggbasetype);
875+
if(agginfo[i].aggtranstype2)free (agginfo[i].aggtranstype2);
876+
if(agginfo[i].agginitval1)free (agginfo[i].agginitval1);
877+
if(agginfo[i].agginitval2)free (agginfo[i].agginitval2);
878+
if(agginfo[i].usename)free (agginfo[i].usename);
879+
}
880+
free (agginfo);
872881
}
873882

874883
/*

‎src/bin/pg_dump/pg_dump.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*
66
* Copyright (c) 1994, Regents of the University of California
77
*
8-
* $Id: pg_dump.h,v 1.16 1997/06/21 16:08:15 momjian Exp $
8+
* $Id: pg_dump.h,v 1.17 1997/07/23 17:15:13 momjian Exp $
99
*
1010
* Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2
1111
*
@@ -85,7 +85,6 @@ typedef struct _tableInfo {
8585
}TableInfo;
8686

8787
typedefstruct_inhInfo {
88-
char*oid;
8988
char*inhrel;
9089
char*inhparent;
9190
}InhInfo;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp