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.