Fix mistake in bbe08b8869bd29d587f24ef18eb45c7d4d14afca.
authorRobert Haas <rhaas@postgresql.org>
Fri, 29 Jul 2022 15:20:07 +0000 (11:20 -0400)
committerRobert Haas <rhaas@postgresql.org>
Fri, 29 Jul 2022 15:20:07 +0000 (11:20 -0400)
The earlier commit used pg_class.relfilenode where it should have
used pg_class.oid. This could lead to emitting an UPDATE statement
into the dump that would update nothing (or the wrong thing) when
executed in the new cluster, resulting in relfrozenxid and
relminmxid being improperly carried forward for pg_largeobject.

Noticed by Dilip Kumar.

Discussion: http://postgr.es/m/CAFiTN-ty1Gzs6stk2vt9BJiq0m0hzf=aPnh3a-4Z3Tk5GzoENw@mail.gmail.com

src/bin/pg_dump/pg_dump.c

index 25742a0e2ada3f6f3bb3c92e06e980a1d6b9e6c5..320bf51e4d55eeedb26bf7ac28ef4a7bfc39ee2a 100644 (file)
@@ -3180,7 +3180,7 @@ dumpDatabase(Archive *fout)
                              "WHERE oid = %u;\n",
                              atooid(PQgetvalue(lo_res, i, i_relfrozenxid)),
                              atooid(PQgetvalue(lo_res, i, i_relminmxid)),
-                             atooid(PQgetvalue(lo_res, i, i_relfilenode)));
+                             atooid(PQgetvalue(lo_res, i, i_oid)));
 
            oid = atooid(PQgetvalue(lo_res, i, i_oid));
            relfilenumber = atooid(PQgetvalue(lo_res, i, i_relfilenode));