On Tue, May 7, 2024 at 9:12 PM Michael Paquier <mich...@paquier.xyz> wrote: > FWIW, I'm rather annoyed by the fact that we rely on the ParseState to > decide if reporting should happen or not. file_fdw tells, even if > that's accidental, that status reporting can be useful if working on a > single table. So, shutting down the whole reporting if a caller if > BeginCopyFrom() does not give a ParseState is too heavy-handed, IMO.
I think you're hoping for too much. The progress reporting infrastructure is fundamentally designed around the idea that there can only be one progress-reporting operation in progress at a time. For COPY, that is, I believe, true, but for file_fdw, it's false. If we want to do any kind of progress reporting from within plannable queries, we need some totally different and much more complex infrastructure that can report progress for, probably, each plan node individually. I think it's likely a mistake to try to shoehorn cases like this into the infrastructure that we have today. It will just encourage people to try to use the current infrastructure in ways that are less and less like what it was actually designed to do; whereas what we should be doing if we want this kind of functionality, at least IMHO, is building infrastructure that's actually fit for purpose. -- Robert Haas EDB: http://www.enterprisedb.com