Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc880096

Browse files
committed
Add command column to pg_stat_progress_create_index
This allows determining which command is running, similar topg_stat_progress_cluster.Discussion:https://www.postgresql.org/message-id/flat/f0e56b3b-74b7-6cbc-e207-a5ed6bee18dc%402ndquadrant.com
1 parent041a264 commitc880096

File tree

7 files changed

+40
-2
lines changed

7 files changed

+40
-2
lines changed

‎doc/src/sgml/monitoring.sgml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3534,6 +3534,15 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS pid,
35343534
<entry>OID of the index being created or reindexed. During a
35353535
non-concurrent <command>CREATE INDEX</command>, this is 0.</entry>
35363536
</row>
3537+
<row>
3538+
<entry><structfield>command</structfield></entry>
3539+
<entry><type>text</type></entry>
3540+
<entry>
3541+
The command that is running: <literal>CREATE INDEX</literal>,
3542+
<literal>CREATE INDEX CONCURRENTLY</literal>,
3543+
<literal>REINDEX</literal>, or <literal>REINDEX CONCURRENTLY</literal>.
3544+
</entry>
3545+
</row>
35373546
<row>
35383547
<entry><structfield>phase</structfield></entry>
35393548
<entry><type>text</type></entry>
@@ -3965,7 +3974,7 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS pid,
39653974
<entry><structfield>command</structfield></entry>
39663975
<entry><type>text</type></entry>
39673976
<entry>
3968-
The command that is running. Either CLUSTER or VACUUM FULL.
3977+
The command that is running. Either<literal>CLUSTER</literal> or<literal>VACUUM FULL</literal>.
39693978
</entry>
39703979
</row>
39713980
<row>

‎src/backend/catalog/index.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3278,6 +3278,8 @@ reindex_index(Oid indexId, bool skip_constraint_checks, char persistence,
32783278

32793279
pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
32803280
heapId);
3281+
pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
3282+
PROGRESS_CREATEIDX_COMMAND_REINDEX);
32813283
pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
32823284
indexId);
32833285

‎src/backend/catalog/system_views.sql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -956,6 +956,11 @@ CREATE VIEW pg_stat_progress_create_index AS
956956
S.pidAS pid,S.datidAS datid,D.datnameAS datname,
957957
S.relidAS relid,
958958
CAST(S.param7ASoid)AS index_relid,
959+
CASES.param1 WHEN1 THEN'CREATE INDEX'
960+
WHEN2 THEN'CREATE INDEX CONCURRENTLY'
961+
WHEN3 THEN'REINDEX'
962+
WHEN4 THEN'REINDEX CONCURRENTLY'
963+
ENDAS command,
959964
CASES.param10 WHEN0 THEN'initializing'
960965
WHEN1 THEN'waiting for writers before build'
961966
WHEN2 THEN'building index'||

‎src/backend/commands/indexcmds.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,8 +498,14 @@ DefineIndex(Oid relationId,
498498
* done.
499499
*/
500500
if (!OidIsValid(parentIndexId))
501+
{
501502
pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
502503
relationId);
504+
pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
505+
stmt->concurrent ?
506+
PROGRESS_CREATEIDX_COMMAND_CREATE_CONCURRENTLY :
507+
PROGRESS_CREATEIDX_COMMAND_CREATE);
508+
}
503509

504510
/*
505511
* No index OID to report yet
@@ -2923,6 +2929,8 @@ ReindexRelationConcurrently(Oid relationOid, int options)
29232929

29242930
pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
29252931
RelationGetRelid(heapRel));
2932+
pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
2933+
PROGRESS_CREATEIDX_COMMAND_REINDEX_CONCURRENTLY);
29262934
pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
29272935
indexId);
29282936
pgstat_progress_update_param(PROGRESS_CREATEIDX_ACCESS_METHOD_OID,

‎src/include/catalog/catversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@
5353
*/
5454

5555
/*yyyymmddN */
56-
#defineCATALOG_VERSION_NO201906031
56+
#defineCATALOG_VERSION_NO201906041
5757

5858
#endif

‎src/include/commands/progress.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959

6060
/* Progress parameters for CREATE INDEX */
6161
/* 3, 4 and 5 reserved for "waitfor" metrics */
62+
#definePROGRESS_CREATEIDX_COMMAND0
6263
#definePROGRESS_CREATEIDX_INDEX_OID6
6364
#definePROGRESS_CREATEIDX_ACCESS_METHOD_OID8
6465
#definePROGRESS_CREATEIDX_PHASE9/* AM-agnostic phase # */
@@ -86,6 +87,12 @@
8687
#definePROGRESS_CREATEIDX_SUBPHASE_INITIALIZE1
8788
/* Additional phases are defined by each AM */
8889

90+
/* Commands of PROGRESS_CREATEIDX */
91+
#definePROGRESS_CREATEIDX_COMMAND_CREATE1
92+
#definePROGRESS_CREATEIDX_COMMAND_CREATE_CONCURRENTLY2
93+
#definePROGRESS_CREATEIDX_COMMAND_REINDEX3
94+
#definePROGRESS_CREATEIDX_COMMAND_REINDEX_CONCURRENTLY4
95+
8996
/* Lock holder wait counts */
9097
#definePROGRESS_WAITFOR_TOTAL3
9198
#definePROGRESS_WAITFOR_DONE4

‎src/test/regress/expected/rules.out

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,6 +1879,13 @@ pg_stat_progress_create_index| SELECT s.pid,
18791879
d.datname,
18801880
s.relid,
18811881
(s.param7)::oid AS index_relid,
1882+
CASE s.param1
1883+
WHEN 1 THEN 'CREATE INDEX'::text
1884+
WHEN 2 THEN 'CREATE INDEX CONCURRENTLY'::text
1885+
WHEN 3 THEN 'REINDEX'::text
1886+
WHEN 4 THEN 'REINDEX CONCURRENTLY'::text
1887+
ELSE NULL::text
1888+
END AS command,
18821889
CASE s.param10
18831890
WHEN 0 THEN 'initializing'::text
18841891
WHEN 1 THEN 'waiting for writers before build'::text

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp