Skip to content
← Catalog atlas / pg_stat_progress_copy

PROGRESS REPORT · Progress report

pg_stat_progress_copy

Whenever COPY is running, the pg_stat_progress_copy view will contain one row for each backend that is currently running a COPY command. The table below describes the information that will be reported and provides information about how to interpret it.

First seen PG 14Last seen PG 19Columns 11

Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗

Columns PostgreSQL 18

pg_stat_progress_copy
COLUMNTYPEDESCRIPTION
pid integer Process ID of backend.
datid oid OID of the database to which this backend is connected.
datname name Name of the database to which this backend is connected.
relid oid OID of the table on which the COPY command is executed. It is set to 0 if copying from a SELECT query.
command text The command that is running: COPY FROM, or COPY TO.
type text The I/O type that the data is read from or written to: FILE, PROGRAM, PIPE (for COPY FROM STDIN and COPY TO STDOUT), or CALLBACK (used for example during the initial table synchronization in logical replication).
bytes_processed bigint Number of bytes already processed by COPY command.
bytes_total bigint Size of source file for COPY FROM command in bytes. It is set to 0 if not available.
tuples_processed bigint Number of tuples already processed by COPY command.
tuples_excluded bigint Number of tuples not processed because they were excluded by the WHERE clause of the COPY command.
tuples_skipped bigint Number of tuples skipped because they contain malformed data. This counter only advances when a value other than stop is specified to the ON_ERROR option.

Columns marked "implicit" are not included in SELECT *; some early statistics views are completed from same-version source, and the extra provenance is shown in the column description.

Column evolution matrix

Hover a cell for the column type
PresentAdded / type or attribute changeRemoved
COLUMN9.09.19.29.39.49.59.610111213141516171819
pid
datid
datname
relid
command
type
bytes_processed
bytes_total
tuples_processed
tuples_excluded
tuples_skipped

9.0 is the coverage baseline; a column already present in the baseline is not marked as added. The matrix aligns columns by name, so a rename appears as the old column removed and a new column added.

Evolution timeline

Changes between adjacent majors

PostgreSQL 19 ← 18

1 column description updates

PostgreSQL 17 ← 16

+ tuples_skipped1 column description updates

PostgreSQL 14 ← 13Catalog added

+ pid+ datid+ datname+ relid+ command+ type+ bytes_processed+ bytes_total+ tuples_processed+ tuples_excluded

Compare any two versions

Pick two versions to see added, removed, and retyped columns. The interactive comparison needs JavaScript; the evolution timeline reads fine without it.