On Mon, Mar 17, 2025 at 07:24:46PM -0400, Corey Huinker wrote: > On Mon, Mar 17, 2025 at 10:24 AM Nathan Bossart <nathandboss...@gmail.com> > wrote: >> I'm assuming that writing a completely different TOC on the second pass >> would corrupt the dump file. Perhaps we could teach it to skip stats >> entries on the second pass or something, but I'm not too wild about adding >> to the list of invasive changes we're making last-minute for v18. > > I'm confused, are they needed in both places?
AFAICT yes. The second pass rewrites the TOC to udpate the data offset information. If we wrote a different TOC the second time around, then the dump file would be broken, right? /* * If possible, re-write the TOC in order to update the data offset * information. This is not essential, as pg_restore can cope in most * cases without it; but it can make pg_restore significantly faster * in some situations (especially parallel restore). */ if (ctx->hasSeek && fseeko(AH->FH, tpos, SEEK_SET) == 0) WriteToc(AH); -- nathan