Fix mistake in bbe08b8869bd29d587f24ef18eb45c7d4d14afca.
authorRobert Haas
Fri, 29 Jul 2022 15:20:07 +0000 (11:20 -0400)
committerRobert Haas
Fri, 29 Jul 2022 15:24:57 +0000 (11:24 -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 360da3973e15a1adc00cd1f9d11d92d5851c9885..e00ee5b288f878c06ed1dc54401741dc3fbcd75f 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));
            relfilenode = atooid(PQgetvalue(lo_res, i, i_relfilenode));