summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorPeter Eisentraut2019-06-04 07:16:02 +0000
committerPeter Eisentraut2019-06-04 07:29:02 +0000
commitc880096dc1e14b62610aa34bc98db226fa134260 (patch)
treee9d32556ed70c73d8e5ae38321ec10688d845b7d /src/backend
parent041a2642e51eb008351435709dcb054760a43bb9 (diff)
Add command column to pg_stat_progress_create_index
This allows determining which command is running, similar to pg_stat_progress_cluster. Discussion: https://www.postgresql.org/message-id/flat/f0e56b3b-74b7-6cbc-e207-a5ed6bee18dc%402ndquadrant.com
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/catalog/index.c2
-rw-r--r--src/backend/catalog/system_views.sql5
-rw-r--r--src/backend/commands/indexcmds.c8
3 files changed, 15 insertions, 0 deletions
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 50c8bb9ce65..d2e4f53a801 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -3278,6 +3278,8 @@ reindex_index(Oid indexId, bool skip_constraint_checks, char persistence,
pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
heapId);
+ pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
+ PROGRESS_CREATEIDX_COMMAND_REINDEX);
pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
indexId);
diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql
index 52a6c315840..78a103cdb95 100644
--- a/src/backend/catalog/system_views.sql
+++ b/src/backend/catalog/system_views.sql
@@ -956,6 +956,11 @@ CREATE VIEW pg_stat_progress_create_index AS
S.pid AS pid, S.datid AS datid, D.datname AS datname,
S.relid AS relid,
CAST(S.param7 AS oid) AS index_relid,
+ CASE S.param1 WHEN 1 THEN 'CREATE INDEX'
+ WHEN 2 THEN 'CREATE INDEX CONCURRENTLY'
+ WHEN 3 THEN 'REINDEX'
+ WHEN 4 THEN 'REINDEX CONCURRENTLY'
+ END AS command,
CASE S.param10 WHEN 0 THEN 'initializing'
WHEN 1 THEN 'waiting for writers before build'
WHEN 2 THEN 'building index' ||
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 40ea629ffe7..4d76da82937 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -498,8 +498,14 @@ DefineIndex(Oid relationId,
* done.
*/
if (!OidIsValid(parentIndexId))
+ {
pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
relationId);
+ pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
+ stmt->concurrent ?
+ PROGRESS_CREATEIDX_COMMAND_CREATE_CONCURRENTLY :
+ PROGRESS_CREATEIDX_COMMAND_CREATE);
+ }
/*
* No index OID to report yet
@@ -2923,6 +2929,8 @@ ReindexRelationConcurrently(Oid relationOid, int options)
pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
RelationGetRelid(heapRel));
+ pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
+ PROGRESS_CREATEIDX_COMMAND_REINDEX_CONCURRENTLY);
pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
indexId);
pgstat_progress_update_param(PROGRESS_CREATEIDX_ACCESS_METHOD_OID,