Skip to content
← Catalog atlas / pg_stat_progress_create_index

PROGRESS REPORT · Progress report

pg_stat_progress_create_index

Whenever CREATE INDEX or REINDEX is running, the pg_stat_progress_create_index view will contain one row for each backend that is currently creating indexes. The tables below describe the information that will be reported and provide information about how to interpret it.

First seen PG 12Last seen PG 19Columns 16

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

Columns PostgreSQL 18

pg_stat_progress_create_index
COLUMNTYPEDESCRIPTION
pid integer Process ID of the backend creating indexes.
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 index is being created.
index_relid oid OID of the index being created or reindexed. During a non-concurrent CREATE INDEX, this is 0.
command text Specific command type: CREATE INDEX, CREATE INDEX CONCURRENTLY, REINDEX, or REINDEX CONCURRENTLY.
phase text Current processing phase of index creation. See Table 27.44.
lockers_total bigint Total number of lockers to wait for, when applicable.
lockers_done bigint Number of lockers already waited for.
current_locker_pid bigint Process ID of the locker currently being waited for.
blocks_total bigint Total number of blocks to be processed in the current phase.
blocks_done bigint Number of blocks already processed in the current phase.
tuples_total bigint Total number of tuples to be processed in the current phase.
tuples_done bigint Number of tuples already processed in the current phase.
partitions_total bigint Total number of partitions on which the index is to be created or attached, including both direct and indirect partitions. 0 during a REINDEX, or when the index is not partitioned.
partitions_done bigint Number of partitions on which the index has already been created or attached, including both direct and indirect partitions. 0 during a REINDEX, or when the index is not partitioned.

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
index_relid
command
phase
lockers_total
lockers_done
current_locker_pid
blocks_total
blocks_done
tuples_total
tuples_done
partitions_total
partitions_done

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

1 column description updates

PostgreSQL 16 ← 15

5 column description updates

PostgreSQL 15 ← 14

1 column description updates

PostgreSQL 14 ← 13

3 column description updates

PostgreSQL 13 ← 12

1 column description updates

PostgreSQL 12 ← 11Catalog added

+ pid+ datid+ datname+ relid+ index_relid+ command+ phase+ lockers_total+ lockers_done+ current_locker_pid+ blocks_total+ blocks_done+ tuples_total+ tuples_done+ partitions_total+ partitions_done

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.