switch (cstate->copy_src)
{
case COPY_FILE:
+ pgstat_report_wait_start(WAIT_EVENT_COPY_FROM_READ);
bytesread = fread(databuf, 1, maxread, cstate->copy_file);
+ pgstat_report_wait_end();
if (ferror(cstate->copy_file))
ereport(ERROR,
(errcode_for_file_access(),
switch (cstate->copy_dest)
{
case COPY_FILE:
+ pgstat_report_wait_start(WAIT_EVENT_COPY_TO_WRITE);
if (fwrite(fe_msgbuf->data, fe_msgbuf->len, 1,
cstate->copy_file) != 1 ||
ferror(cstate->copy_file))
(errcode_for_file_access(),
errmsg("could not write to COPY file: %m")));
}
+ pgstat_report_wait_end();
break;
case COPY_FRONTEND:
/* Dump the accumulated row as one CopyData message */
COPY_FILE_COPY "Waiting for a file copy operation."
COPY_FILE_READ "Waiting for a read during a file copy operation."
COPY_FILE_WRITE "Waiting for a write during a file copy operation."
+COPY_FROM_READ "Waiting to read data from a pipe, a file or a program during COPY FROM."
+COPY_TO_WRITE "Waiting to write data to a pipe, a file or a program during COPY TO."
DATA_FILE_EXTEND "Waiting for a relation data file to be extended."
DATA_FILE_FLUSH "Waiting for a relation data file to reach durable storage."
DATA_FILE_IMMEDIATE_SYNC "Waiting for an immediate synchronization of a relation data file to durable storage."