On Mon, Mar 17, 2025 at 10:24 AM Nathan Bossart <nathandboss...@gmail.com> wrote:
> On Sun, Mar 16, 2025 at 05:32:15PM -0400, Corey Huinker wrote: > >> > >> * The custom format actually does two WriteToc() calls, and since these > >> patches move the queries to this part of pg_dump, it means we'll run > all > >> the queries twice. The comments around this code suggest that the > second > >> pass isn't strictly necessary and that it is really only useful for > >> data/parallel restore, so we could probably skip it for no-data dumps. > >> > > > > Is there any reason we couldn't have stats objects remove themselves from > > the list after completion? > > 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? If so, would it make sense to write out each stat entry to a file and then re-read the file on the second pass, or maybe do a \i filename in the sql script? Not suggesting we do any of this for v18, but when I hear about doing something twice when that thing was painful the first time, I look for ways to avoid doing it, or set pan_is_hot = true for the next person.