]> granicus.if.org Git - postgresql/commit
When doing a parallel restore, we must guard against out-of-range dependency
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 19 Jan 2010 18:39:26 +0000 (18:39 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 19 Jan 2010 18:39:26 +0000 (18:39 +0000)
commit3fc333d88a334920a17c898008535cbe76ebf221
treeef00829568113b26b370eb187fa0508387d5ba04
parentdcd647d7cf98e3393f919135f6e113e896781f60
When doing a parallel restore, we must guard against out-of-range dependency
dump IDs, because the array we're using is sized according to the highest
dump ID actually defined in the archive file.  In a partial dump there could
be references to higher dump IDs that weren't dumped.  Treat these the same
as references to in-range IDs that weren't dumped.  (The whole thing is a
bit scary because the missing objects might have been part of dependency
chains, which we won't know about.  Not much we can do though --- throwing
an error is probably overreaction.)

Also, reject parallel restore with pre-1.8 archive version (made by pre-8.0
pg_dump).  In these old versions the dependency entries are OIDs, not dump
IDs, and we don't have enough information to interpret them.

Per bug #5288 from Jon Erdman.
src/bin/pg_dump/pg_backup_archiver.c