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

Commit7e8c25c

Browse files
committed
Initialize tableoid field correctly when dumping foreign data wrappers and
servers. AFAICT it's harmless at the moment because nothing can depend oneither, but as soon as we introduce an object type with such dependencies,tableoid needs to be set or pg_dump will fail to interpret the dependenciescorrectly. In theory, I guess the uninitialized garbage in tableoid couldcause the object to be mistaken for some other object with same OID as well.
1 parent9aae815 commit7e8c25c

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

‎src/bin/pg_dump/pg_dump.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5851,6 +5851,7 @@ getForeignDataWrappers(int *numForeignDataWrappers)
58515851
inti;
58525852
PQExpBufferquery=createPQExpBuffer();
58535853
FdwInfo*fdwinfo;
5854+
inti_tableoid;
58545855
inti_oid;
58555856
inti_fdwname;
58565857
inti_rolname;
@@ -5868,7 +5869,7 @@ getForeignDataWrappers(int *numForeignDataWrappers)
58685869
/* Make sure we are in proper schema */
58695870
selectSourceSchema("pg_catalog");
58705871

5871-
appendPQExpBuffer(query,"SELECT oid, fdwname, "
5872+
appendPQExpBuffer(query,"SELECTtableoid,oid, fdwname, "
58725873
"(%s fdwowner) AS rolname, fdwvalidator::pg_catalog.regproc, fdwacl,"
58735874
"array_to_string(ARRAY("
58745875
"SELECT option_name || ' ' || quote_literal(option_value) "
@@ -5884,6 +5885,7 @@ getForeignDataWrappers(int *numForeignDataWrappers)
58845885

58855886
fdwinfo= (FdwInfo*)malloc(ntups*sizeof(FdwInfo));
58865887

5888+
i_tableoid=PQfnumber(res,"tableoid");
58875889
i_oid=PQfnumber(res,"oid");
58885890
i_fdwname=PQfnumber(res,"fdwname");
58895891
i_rolname=PQfnumber(res,"rolname");
@@ -5894,6 +5896,7 @@ getForeignDataWrappers(int *numForeignDataWrappers)
58945896
for (i=0;i<ntups;i++)
58955897
{
58965898
fdwinfo[i].dobj.objType=DO_FDW;
5899+
fdwinfo[i].dobj.catId.tableoid=atooid(PQgetvalue(res,i,i_tableoid));
58975900
fdwinfo[i].dobj.catId.oid=atooid(PQgetvalue(res,i,i_oid));
58985901
AssignDumpId(&fdwinfo[i].dobj);
58995902
fdwinfo[i].dobj.name=strdup(PQgetvalue(res,i,i_fdwname));
@@ -5930,6 +5933,7 @@ getForeignServers(int *numForeignServers)
59305933
inti;
59315934
PQExpBufferquery=createPQExpBuffer();
59325935
ForeignServerInfo*srvinfo;
5936+
inti_tableoid;
59335937
inti_oid;
59345938
inti_srvname;
59355939
inti_rolname;
@@ -5949,7 +5953,7 @@ getForeignServers(int *numForeignServers)
59495953
/* Make sure we are in proper schema */
59505954
selectSourceSchema("pg_catalog");
59515955

5952-
appendPQExpBuffer(query,"SELECT oid, srvname, "
5956+
appendPQExpBuffer(query,"SELECTtableoid,oid, srvname, "
59535957
"(%s srvowner) AS rolname, "
59545958
"srvfdw, srvtype, srvversion, srvacl,"
59555959
"array_to_string(ARRAY("
@@ -5966,6 +5970,7 @@ getForeignServers(int *numForeignServers)
59665970

59675971
srvinfo= (ForeignServerInfo*)malloc(ntups*sizeof(ForeignServerInfo));
59685972

5973+
i_tableoid=PQfnumber(res,"tableoid");
59695974
i_oid=PQfnumber(res,"oid");
59705975
i_srvname=PQfnumber(res,"srvname");
59715976
i_rolname=PQfnumber(res,"rolname");
@@ -5978,6 +5983,7 @@ getForeignServers(int *numForeignServers)
59785983
for (i=0;i<ntups;i++)
59795984
{
59805985
srvinfo[i].dobj.objType=DO_FOREIGN_SERVER;
5986+
srvinfo[i].dobj.catId.tableoid=atooid(PQgetvalue(res,i,i_tableoid));
59815987
srvinfo[i].dobj.catId.oid=atooid(PQgetvalue(res,i,i_oid));
59825988
AssignDumpId(&srvinfo[i].dobj);
59835989
srvinfo[i].dobj.name=strdup(PQgetvalue(res,i,i_srvname));

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp