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

Commit0e6519e

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 parent6f664c1 commit0e6519e

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
@@ -5843,6 +5843,7 @@ getForeignDataWrappers(int *numForeignDataWrappers)
58435843
inti;
58445844
PQExpBufferquery=createPQExpBuffer();
58455845
FdwInfo*fdwinfo;
5846+
inti_tableoid;
58465847
inti_oid;
58475848
inti_fdwname;
58485849
inti_rolname;
@@ -5860,7 +5861,7 @@ getForeignDataWrappers(int *numForeignDataWrappers)
58605861
/* Make sure we are in proper schema */
58615862
selectSourceSchema("pg_catalog");
58625863

5863-
appendPQExpBuffer(query,"SELECT oid, fdwname, "
5864+
appendPQExpBuffer(query,"SELECTtableoid,oid, fdwname, "
58645865
"(%s fdwowner) AS rolname, fdwvalidator::pg_catalog.regproc, fdwacl,"
58655866
"array_to_string(ARRAY("
58665867
"SELECT option_name || ' ' || quote_literal(option_value) "
@@ -5876,6 +5877,7 @@ getForeignDataWrappers(int *numForeignDataWrappers)
58765877

58775878
fdwinfo= (FdwInfo*)malloc(ntups*sizeof(FdwInfo));
58785879

5880+
i_tableoid=PQfnumber(res,"tableoid");
58795881
i_oid=PQfnumber(res,"oid");
58805882
i_fdwname=PQfnumber(res,"fdwname");
58815883
i_rolname=PQfnumber(res,"rolname");
@@ -5886,6 +5888,7 @@ getForeignDataWrappers(int *numForeignDataWrappers)
58865888
for (i=0;i<ntups;i++)
58875889
{
58885890
fdwinfo[i].dobj.objType=DO_FDW;
5891+
fdwinfo[i].dobj.catId.tableoid=atooid(PQgetvalue(res,i,i_tableoid));
58895892
fdwinfo[i].dobj.catId.oid=atooid(PQgetvalue(res,i,i_oid));
58905893
AssignDumpId(&fdwinfo[i].dobj);
58915894
fdwinfo[i].dobj.name=strdup(PQgetvalue(res,i,i_fdwname));
@@ -5922,6 +5925,7 @@ getForeignServers(int *numForeignServers)
59225925
inti;
59235926
PQExpBufferquery=createPQExpBuffer();
59245927
ForeignServerInfo*srvinfo;
5928+
inti_tableoid;
59255929
inti_oid;
59265930
inti_srvname;
59275931
inti_rolname;
@@ -5941,7 +5945,7 @@ getForeignServers(int *numForeignServers)
59415945
/* Make sure we are in proper schema */
59425946
selectSourceSchema("pg_catalog");
59435947

5944-
appendPQExpBuffer(query,"SELECT oid, srvname, "
5948+
appendPQExpBuffer(query,"SELECTtableoid,oid, srvname, "
59455949
"(%s srvowner) AS rolname, "
59465950
"srvfdw, srvtype, srvversion, srvacl,"
59475951
"array_to_string(ARRAY("
@@ -5958,6 +5962,7 @@ getForeignServers(int *numForeignServers)
59585962

59595963
srvinfo= (ForeignServerInfo*)malloc(ntups*sizeof(ForeignServerInfo));
59605964

5965+
i_tableoid=PQfnumber(res,"tableoid");
59615966
i_oid=PQfnumber(res,"oid");
59625967
i_srvname=PQfnumber(res,"srvname");
59635968
i_rolname=PQfnumber(res,"rolname");
@@ -5970,6 +5975,7 @@ getForeignServers(int *numForeignServers)
59705975
for (i=0;i<ntups;i++)
59715976
{
59725977
srvinfo[i].dobj.objType=DO_FOREIGN_SERVER;
5978+
srvinfo[i].dobj.catId.tableoid=atooid(PQgetvalue(res,i,i_tableoid));
59735979
srvinfo[i].dobj.catId.oid=atooid(PQgetvalue(res,i,i_oid));
59745980
AssignDumpId(&srvinfo[i].dobj);
59755981
srvinfo[i].dobj.name=strdup(PQgetvalue(res,i,i_srvname));

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp