commit adce17b33253a42c7e60f17c50698facfa7bd729
Author:     Alvaro Herrera <alvherre@alvh.no-ip.org>
AuthorDate: Mon Jan 11 18:11:04 2021 -0300
CommitDate: Mon Jan 11 18:11:04 2021 -0300

    First attempt at handling ALTER TABLE ADD in create index progress reporting

diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql
index 5d89e77dbe..7892988570 100644
--- a/src/backend/catalog/system_views.sql
+++ b/src/backend/catalog/system_views.sql
@@ -1075,6 +1075,7 @@ CREATE VIEW pg_stat_progress_create_index AS
                       WHEN 2 THEN 'CREATE INDEX CONCURRENTLY'
                       WHEN 3 THEN 'REINDEX'
                       WHEN 4 THEN 'REINDEX CONCURRENTLY'
+                      WHEN 5 THEN 'ALTER TABLE ADD CONSTRAINT'
                       END AS command,
         CASE S.param10 WHEN 0 THEN 'initializing'
                        WHEN 1 THEN 'waiting for writers before build'
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 992f4813b4..0a72b10b0d 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -575,6 +575,8 @@ DefineIndex(Oid relationId,
 		pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
 									  relationId);
 		pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
+									 is_alter_table ?
+									 PROGRESS_CREATEIDX_COMMAND_ALTER_TABLE_ADD :
 									 concurrent ?
 									 PROGRESS_CREATEIDX_COMMAND_CREATE_CONCURRENTLY :
 									 PROGRESS_CREATEIDX_COMMAND_CREATE);
diff --git a/src/include/commands/progress.h b/src/include/commands/progress.h
index 95ec5d02e9..54e68a2ba0 100644
--- a/src/include/commands/progress.h
+++ b/src/include/commands/progress.h
@@ -109,6 +109,7 @@
 #define PROGRESS_CREATEIDX_COMMAND_CREATE_CONCURRENTLY	2
 #define PROGRESS_CREATEIDX_COMMAND_REINDEX		3
 #define PROGRESS_CREATEIDX_COMMAND_REINDEX_CONCURRENTLY	4
+#define PROGRESS_CREATEIDX_COMMAND_ALTER_TABLE_ADD	5
 
 /* Lock holder wait counts */
 #define PROGRESS_WAITFOR_TOTAL					3
