Re: bug: copy progress reporting of backends which run multiple COPYs - Mailing list pgsql-hackers

From Justin Pryzby
Subject Re: bug: copy progress reporting of backends which run multiple COPYs
Date
Msg-id 20230121012802.GL13860@telsasoft.com
Whole thread Raw
In response to Re: bug: copy progress reporting of backends which run multiple COPYs  (Matthias van de Meent <boekewurm+postgres@gmail.com>)
Responses Re: bug: copy progress reporting of backends which run multiple COPYs
List pgsql-hackers
On Sat, Jan 21, 2023 at 01:51:28AM +0100, Matthias van de Meent wrote:
> On Thu, 19 Jan 2023 at 06:47, Justin Pryzby <pryzby@telsasoft.com> wrote:
> >
> > pg_stat_progress_copy was added in v14 (8a4f618e7, 9d2d45700).
> >
> > But if a command JOINs file_fdw tables, the progress report gets bungled
> > up.  This will warn/assert during file_fdw tests.
> 
> I don't know what to do with that other than disabling COPY progress
> reporting for file_fdw, i.e. calls to BeginCopyFrom that don't supply
> a pstate. This is probably the best option, because a table backed by
> file_fdw would also interfere with COPY TO's progress reporting.
> 
> Attached a patch that solves this specific issue in a
> binary-compatible way. I'm not super happy about relying on behavior
> of callers of BeginCopyFrom (assuming that users that run copy
> concurrently will not provide a ParseState* to BeginCopyFrom), but it
> is what it is.

Thanks for looking.  Maybe another option is to avoid progress reporting
in 2nd and later CopyFrom() if another COPY was already running in that
backend.

Would you do anything different in the master branch, with no
compatibility constraints ?  I think the progress reporting would still
be limited to one row per backend, not one per CopyFrom().

-- 
Justin



pgsql-hackers by date:

Previous
From: Matthias van de Meent
Date:
Subject: Re: bug: copy progress reporting of backends which run multiple COPYs
Next
From: Matthias van de Meent
Date:
Subject: Re: bug: copy progress reporting of backends which run multiple COPYs