v2_fix_progress_report_for_cluster.patch
application/octet-stream
Filename: v2_fix_progress_report_for_cluster.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
Series: patch v2
| File | + | − |
|---|---|---|
| src/backend/access/hash/hash.c | 2 | 1 |
| src/backend/access/hash/hashsort.c | 2 | 1 |
| src/backend/access/heap/heapam_handler.c | 28 | 14 |
| src/backend/access/heap/vacuumlazy.c | 32 | 17 |
| src/backend/access/nbtree/nbtree.c | 4 | 2 |
| src/backend/access/nbtree/nbtsort.c | 14 | 7 |
| src/backend/access/transam/xact.c | 3 | 2 |
| src/backend/catalog/index.c | 17 | 9 |
| src/backend/commands/cluster.c | 18 | 13 |
| src/backend/commands/indexcmds.c | 45 | 25 |
| src/backend/postmaster/pgstat.c | 14 | 4 |
| src/backend/storage/lmgr/lmgr.c | 8 | 4 |
| src/include/pgstat.h | 5 | 3 |
diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c
index 5cc30da..1cbd336 100644
--- a/src/backend/access/hash/hash.c
+++ b/src/backend/access/hash/hash.c
@@ -166,7 +166,8 @@ hashbuild(Relation heap, Relation index, IndexInfo *indexInfo)
reltuples = table_index_build_scan(heap, index, indexInfo, true, true,
hashbuildCallback,
(void *) &buildstate, NULL);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_TUPLES_TOTAL,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_TUPLES_TOTAL,
buildstate.indtuples);
if (buildstate.spool)
diff --git a/src/backend/access/hash/hashsort.c b/src/backend/access/hash/hashsort.c
index 293f80f..98653d4 100644
--- a/src/backend/access/hash/hashsort.c
+++ b/src/backend/access/hash/hashsort.c
@@ -145,7 +145,8 @@ _h_indexbuild(HSpool *hspool, Relation heapRel)
_hash_doinsert(hspool->index, itup, heapRel);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_TUPLES_DONE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_TUPLES_DONE,
++tups_done);
}
}
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index fc19f40..6f086b1 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -759,7 +759,8 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap,
/* Set phase and OIDOldIndex to columns */
ci_val[0] = PROGRESS_CLUSTER_PHASE_INDEX_SCAN_HEAP;
ci_val[1] = RelationGetRelid(OldIndex);
- pgstat_progress_update_multi_param(2, ci_index, ci_val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_CLUSTER,
+ 2, ci_index, ci_val);
tableScan = NULL;
heapScan = NULL;
@@ -769,7 +770,8 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap,
else
{
/* In scan-and-sort mode and also VACUUM FULL, set phase */
- pgstat_progress_update_param(PROGRESS_CLUSTER_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_PHASE,
PROGRESS_CLUSTER_PHASE_SEQ_SCAN_HEAP);
tableScan = table_beginscan(OldHeap, SnapshotAny, 0, (ScanKey) NULL);
@@ -777,7 +779,8 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap,
indexScan = NULL;
/* Set total heap blocks */
- pgstat_progress_update_param(PROGRESS_CLUSTER_TOTAL_HEAP_BLKS,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_TOTAL_HEAP_BLKS,
heapScan->rs_nblocks);
}
@@ -816,7 +819,8 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap,
* In scan-and-sort mode and also VACUUM FULL, set heap blocks
* scanned
*/
- pgstat_progress_update_param(PROGRESS_CLUSTER_HEAP_BLKS_SCANNED,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_HEAP_BLKS_SCANNED,
heapScan->rs_cblock + 1);
}
@@ -898,7 +902,8 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap,
* In scan-and-sort mode, report increase in number of tuples
* scanned
*/
- pgstat_progress_update_param(PROGRESS_CLUSTER_HEAP_TUPLES_SCANNED,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_HEAP_TUPLES_SCANNED,
*num_tuples);
}
else
@@ -918,7 +923,8 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap,
*/
ct_val[0] = *num_tuples;
ct_val[1] = *num_tuples;
- pgstat_progress_update_multi_param(2, ct_index, ct_val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_CLUSTER,
+ 2, ct_index, ct_val);
}
}
@@ -938,13 +944,15 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap,
double n_tuples = 0;
/* Report that we are now sorting tuples */
- pgstat_progress_update_param(PROGRESS_CLUSTER_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_PHASE,
PROGRESS_CLUSTER_PHASE_SORT_TUPLES);
tuplesort_performsort(tuplesort);
/* Report that we are now writing new heap */
- pgstat_progress_update_param(PROGRESS_CLUSTER_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_PHASE,
PROGRESS_CLUSTER_PHASE_WRITE_NEW_HEAP);
for (;;)
@@ -963,7 +971,8 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap,
values, isnull,
rwstate);
/* Report n_tuples */
- pgstat_progress_update_param(PROGRESS_CLUSTER_HEAP_TUPLES_WRITTEN,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_HEAP_TUPLES_WRITTEN,
n_tuples);
}
@@ -1276,7 +1285,8 @@ heapam_index_build_range_scan(Relation heapRelation,
else
nblocks = hscan->rs_nblocks;
- pgstat_progress_update_param(PROGRESS_SCAN_BLOCKS_TOTAL,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_SCAN_BLOCKS_TOTAL,
nblocks);
}
@@ -1319,7 +1329,8 @@ heapam_index_build_range_scan(Relation heapRelation,
if (blocks_done != previous_blkno)
{
- pgstat_progress_update_param(PROGRESS_SCAN_BLOCKS_DONE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_SCAN_BLOCKS_DONE,
blocks_done);
previous_blkno = blocks_done;
}
@@ -1681,7 +1692,8 @@ heapam_index_build_range_scan(Relation heapRelation,
else
blks_done = hscan->rs_nblocks;
- pgstat_progress_update_param(PROGRESS_SCAN_BLOCKS_DONE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_SCAN_BLOCKS_DONE,
blks_done);
}
@@ -1762,7 +1774,8 @@ heapam_index_validate_scan(Relation heapRelation,
false); /* syncscan not OK */
hscan = (HeapScanDesc) scan;
- pgstat_progress_update_param(PROGRESS_SCAN_BLOCKS_TOTAL,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_SCAN_BLOCKS_TOTAL,
hscan->rs_nblocks);
/*
@@ -1781,7 +1794,8 @@ heapam_index_validate_scan(Relation heapRelation,
if ((previous_blkno == InvalidBlockNumber) ||
(hscan->rs_cblock != previous_blkno))
{
- pgstat_progress_update_param(PROGRESS_SCAN_BLOCKS_DONE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_SCAN_BLOCKS_DONE,
hscan->rs_cblock);
previous_blkno = hscan->rs_cblock;
}
diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
index a3c4a1d..b7d4840 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -268,7 +268,7 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
get_database_name(MyDatabaseId),
get_namespace_name(RelationGetNamespace(onerel)),
RelationGetRelationName(onerel))));
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_VACUUM);
return;
}
@@ -314,7 +314,8 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
lazy_truncate_heap(onerel, vacrelstats);
/* Report that we are now doing final cleanup */
- pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_PHASE,
PROGRESS_VACUUM_PHASE_FINAL_CLEANUP);
/*
@@ -367,7 +368,7 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
onerel->rd_rel->relisshared,
new_live_tuples,
vacrelstats->new_dead_tuples);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_VACUUM);
/* and log the action if appropriate */
if (IsAutoVacuumWorkerProcess() && params->log_min_duration >= 0)
@@ -560,7 +561,8 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
initprog_val[1] = nblocks;
initprog_val[2] = vacrelstats->max_dead_tuples;
- pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_VACUUM,
+ 3, initprog_index, initprog_val);
/*
* Except when aggressive is set, we want to skip pages that are
@@ -656,7 +658,8 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
#define FORCE_CHECK_PAGE() \
(blkno == nblocks - 1 && should_attempt_truncation(params, vacrelstats))
- pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_SCANNED, blkno);
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_HEAP_BLKS_SCANNED, blkno);
if (blkno == next_unskippable_block)
{
@@ -762,7 +765,8 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
vacuum_log_cleanup_info(onerel, vacrelstats);
/* Report that we are now vacuuming indexes */
- pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_PHASE,
PROGRESS_VACUUM_PHASE_VACUUM_INDEX);
/* Remove index entries */
@@ -779,7 +783,8 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
*/
hvp_val[0] = PROGRESS_VACUUM_PHASE_VACUUM_HEAP;
hvp_val[1] = vacrelstats->num_index_scans + 1;
- pgstat_progress_update_multi_param(2, hvp_index, hvp_val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_VACUUM,
+ 2, hvp_index, hvp_val);
/* Remove tuples from heap */
lazy_vacuum_heap(onerel, vacrelstats);
@@ -800,7 +805,8 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
next_fsm_block_to_vacuum = blkno;
/* Report that we are once again scanning the heap */
- pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_PHASE,
PROGRESS_VACUUM_PHASE_SCAN_HEAP);
}
@@ -1389,7 +1395,8 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
}
/* report that everything is scanned and vacuumed */
- pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_SCANNED, blkno);
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_HEAP_BLKS_SCANNED, blkno);
pfree(frozen);
@@ -1430,7 +1437,8 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
vacuum_log_cleanup_info(onerel, vacrelstats);
/* Report that we are now vacuuming indexes */
- pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_PHASE,
PROGRESS_VACUUM_PHASE_VACUUM_INDEX);
/* Remove index entries */
@@ -1442,10 +1450,12 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
/* Report that we are now vacuuming the heap */
hvp_val[0] = PROGRESS_VACUUM_PHASE_VACUUM_HEAP;
hvp_val[1] = vacrelstats->num_index_scans + 1;
- pgstat_progress_update_multi_param(2, hvp_index, hvp_val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_VACUUM,
+ 2, hvp_index, hvp_val);
/* Remove tuples from heap */
- pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_PHASE,
PROGRESS_VACUUM_PHASE_VACUUM_HEAP);
lazy_vacuum_heap(onerel, vacrelstats);
vacrelstats->num_index_scans++;
@@ -1459,8 +1469,10 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats,
FreeSpaceMapVacuumRange(onerel, next_fsm_block_to_vacuum, blkno);
/* report all blocks vacuumed; and that we're cleaning up */
- pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
- pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_PHASE,
PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
/* Do post-vacuum cleanup and statistics update for each index */
@@ -1597,7 +1609,8 @@ lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
TransactionId visibility_cutoff_xid;
bool all_frozen;
- pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
START_CRIT_SECTION();
@@ -1880,7 +1893,8 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
pg_rusage_init(&ru0);
/* Report that we are now truncating */
- pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_PHASE,
PROGRESS_VACUUM_PHASE_TRUNCATE);
/*
@@ -2186,7 +2200,8 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
{
vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
vacrelstats->num_dead_tuples++;
- pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
+ pgstat_progress_update_param(PROGRESS_COMMAND_VACUUM,
+ PROGRESS_VACUUM_NUM_DEAD_TUPLES,
vacrelstats->num_dead_tuples);
}
}
diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c
index 4cfd528..028afb1 100644
--- a/src/backend/access/nbtree/nbtree.c
+++ b/src/backend/access/nbtree/nbtree.c
@@ -1024,7 +1024,8 @@ btvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
UnlockRelationForExtension(rel, ExclusiveLock);
if (info->report_progress)
- pgstat_progress_update_param(PROGRESS_SCAN_BLOCKS_TOTAL,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_SCAN_BLOCKS_TOTAL,
num_pages);
/* Quit if we've scanned the whole relation */
@@ -1035,7 +1036,8 @@ btvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
{
btvacuumpage(&vstate, blkno, blkno);
if (info->report_progress)
- pgstat_progress_update_param(PROGRESS_SCAN_BLOCKS_DONE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_SCAN_BLOCKS_DONE,
blkno);
}
}
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index d0b9013..a4582cc 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -397,7 +397,8 @@ _bt_spools_heapscan(Relation heap, Relation index, BTBuildState *buildstate,
buildstate->spool = btspool;
/* Report table scan phase started */
- pgstat_progress_update_param(PROGRESS_CREATEIDX_SUBPHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_SUBPHASE,
PROGRESS_BTREE_PHASE_INDEXBUILD_TABLESCAN);
/* Attempt to launch parallel worker scan when required */
@@ -508,7 +509,8 @@ _bt_spools_heapscan(Relation heap, Relation index, BTBuildState *buildstate,
0, 0
};
- pgstat_progress_update_multi_param(3, index, val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_CREATE_INDEX,
+ 3, index, val);
}
/* okay, all heap tuples are spooled */
@@ -559,12 +561,14 @@ _bt_leafbuild(BTSpool *btspool, BTSpool *btspool2)
}
#endif /* BTREE_BUILD_STATS */
- pgstat_progress_update_param(PROGRESS_CREATEIDX_SUBPHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_SUBPHASE,
PROGRESS_BTREE_PHASE_PERFORMSORT_1);
tuplesort_performsort(btspool->sortstate);
if (btspool2)
{
- pgstat_progress_update_param(PROGRESS_CREATEIDX_SUBPHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_SUBPHASE,
PROGRESS_BTREE_PHASE_PERFORMSORT_2);
tuplesort_performsort(btspool2->sortstate);
}
@@ -584,7 +588,8 @@ _bt_leafbuild(BTSpool *btspool, BTSpool *btspool2)
wstate.btws_pages_written = 0;
wstate.btws_zeropage = NULL; /* until needed */
- pgstat_progress_update_param(PROGRESS_CREATEIDX_SUBPHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_SUBPHASE,
PROGRESS_BTREE_PHASE_LEAF_LOAD);
_bt_load(&wstate, btspool, btspool2);
}
@@ -1259,7 +1264,8 @@ _bt_load(BTWriteState *wstate, BTSpool *btspool, BTSpool *btspool2)
}
/* Report progress */
- pgstat_progress_update_param(PROGRESS_CREATEIDX_TUPLES_DONE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_TUPLES_DONE,
++tuples_done);
}
pfree(sortKeys);
@@ -1277,7 +1283,8 @@ _bt_load(BTWriteState *wstate, BTSpool *btspool, BTSpool *btspool2)
_bt_buildadd(wstate, state, itup);
/* Report progress */
- pgstat_progress_update_param(PROGRESS_CREATEIDX_TUPLES_DONE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_TUPLES_DONE,
++tuples_done);
}
}
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index c87524e..fe30835 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -2584,7 +2584,8 @@ AbortTransaction(void)
/* Clear wait information and command progress indicator */
pgstat_report_wait_end();
- pgstat_progress_end_command();
+
+ pgstat_progress_end_command(PROGRESS_COMMAND_INVALID);
/* Clean up buffer I/O and buffer context locks, too */
AbortBufferIO();
@@ -4896,7 +4897,7 @@ AbortSubTransaction(void)
LWLockReleaseAll();
pgstat_report_wait_end();
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_INVALID);
AbortBufferIO();
UnlockBuffers();
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 795597b..ac15986 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -2779,7 +2779,8 @@ index_build(Relation heapRelation,
0, 0, 0, 0
};
- pgstat_progress_update_multi_param(6, index, val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_CREATE_INDEX,
+ 6, index, val);
}
/*
@@ -3083,7 +3084,8 @@ validate_index(Oid heapId, Oid indexId, Snapshot snapshot)
0, 0, 0, 0
};
- pgstat_progress_update_multi_param(5, index, val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_CREATE_INDEX,
+ 5, index, val);
}
/* Open and lock the parent heap relation */
@@ -3150,14 +3152,16 @@ validate_index(Oid heapId, Oid indexId, Snapshot snapshot)
0, 0
};
- pgstat_progress_update_multi_param(3, index, val);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_CREATE_INDEX,
+ 3, index, val);
}
tuplesort_performsort(state.tuplesort);
/*
* Now scan the heap and "merge" it with the index
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_VALIDATE_TABLESCAN);
table_index_validate_scan(heapRelation,
indexRelation,
@@ -3340,9 +3344,11 @@ 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,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_COMMAND,
PROGRESS_CREATEIDX_COMMAND_REINDEX);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_INDEX_OID,
indexId);
/*
@@ -3351,7 +3357,8 @@ reindex_index(Oid indexId, bool skip_constraint_checks, char persistence,
*/
iRel = index_open(indexId, AccessExclusiveLock);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_ACCESS_METHOD_OID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_ACCESS_METHOD_OID,
iRel->rd_rel->relam);
/*
@@ -3505,7 +3512,7 @@ reindex_index(Oid indexId, bool skip_constraint_checks, char persistence,
errdetail_internal("%s",
pg_rusage_show(&ru0))));
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CREATE_INDEX);
/* Close rels, but keep locks */
index_close(iRel, NoLock);
@@ -3631,7 +3638,8 @@ reindex_relation(Oid relid, int flags, int options)
Assert(!ReindexIsProcessingIndex(indexOid));
/* Set index rebuild count */
- pgstat_progress_update_param(PROGRESS_CLUSTER_INDEX_REBUILD_COUNT,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_INDEX_REBUILD_COUNT,
i);
i++;
}
diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index ebaec4f..7f276e0 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -274,10 +274,12 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
pgstat_progress_start_command(PROGRESS_COMMAND_CLUSTER, tableOid);
if (OidIsValid(indexOid))
- pgstat_progress_update_param(PROGRESS_CLUSTER_COMMAND,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_COMMAND,
PROGRESS_CLUSTER_COMMAND_CLUSTER);
else
- pgstat_progress_update_param(PROGRESS_CLUSTER_COMMAND,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_COMMAND,
PROGRESS_CLUSTER_COMMAND_VACUUM_FULL);
/*
@@ -291,7 +293,7 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
/* If the table has gone away, we can skip processing it */
if (!OldHeap)
{
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CLUSTER);
return;
}
@@ -312,7 +314,7 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
if (!pg_class_ownercheck(tableOid, GetUserId()))
{
relation_close(OldHeap, AccessExclusiveLock);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CLUSTER);
return;
}
@@ -327,7 +329,7 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
if (RELATION_IS_OTHER_TEMP(OldHeap))
{
relation_close(OldHeap, AccessExclusiveLock);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CLUSTER);
return;
}
@@ -339,7 +341,7 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
if (!SearchSysCacheExists1(RELOID, ObjectIdGetDatum(indexOid)))
{
relation_close(OldHeap, AccessExclusiveLock);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CLUSTER);
return;
}
@@ -350,7 +352,7 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
if (!HeapTupleIsValid(tuple)) /* probably can't happen */
{
relation_close(OldHeap, AccessExclusiveLock);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CLUSTER);
return;
}
indexForm = (Form_pg_index) GETSTRUCT(tuple);
@@ -358,7 +360,7 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
{
ReleaseSysCache(tuple);
relation_close(OldHeap, AccessExclusiveLock);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CLUSTER);
return;
}
ReleaseSysCache(tuple);
@@ -413,7 +415,7 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
!RelationIsPopulated(OldHeap))
{
relation_close(OldHeap, AccessExclusiveLock);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CLUSTER);
return;
}
@@ -430,7 +432,7 @@ cluster_rel(Oid tableOid, Oid indexOid, int options)
/* NB: rebuild_relation does table_close() on OldHeap */
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CLUSTER);
}
/*
@@ -1353,7 +1355,8 @@ finish_heap_swap(Oid OIDOldHeap, Oid OIDNewHeap,
int i;
/* Report that we are now swapping relation files */
- pgstat_progress_update_param(PROGRESS_CLUSTER_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_PHASE,
PROGRESS_CLUSTER_PHASE_SWAP_REL_FILES);
/* Zero out possible results from swapped_relation_files */
@@ -1404,13 +1407,15 @@ finish_heap_swap(Oid OIDOldHeap, Oid OIDNewHeap,
reindex_flags |= REINDEX_REL_FORCE_INDEXES_PERMANENT;
/* Report that we are now reindexing relations */
- pgstat_progress_update_param(PROGRESS_CLUSTER_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_PHASE,
PROGRESS_CLUSTER_PHASE_REBUILD_INDEX);
reindex_relation(OIDOldHeap, reindex_flags, 0);
/* Report that we are now doing clean up */
- pgstat_progress_update_param(PROGRESS_CLUSTER_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CLUSTER,
+ PROGRESS_CLUSTER_PHASE,
PROGRESS_CLUSTER_PHASE_FINAL_CLEANUP);
/*
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index cbac314..a746d4a 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -347,7 +347,8 @@ WaitForOlderSnapshots(TransactionId limitXmin, bool progress)
PROC_IS_AUTOVACUUM | PROC_IN_VACUUM,
&n_old_snapshots);
if (progress)
- pgstat_progress_update_param(PROGRESS_WAITFOR_TOTAL, n_old_snapshots);
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_WAITFOR_TOTAL, n_old_snapshots);
for (i = 0; i < n_old_snapshots; i++)
{
@@ -388,14 +389,16 @@ WaitForOlderSnapshots(TransactionId limitXmin, bool progress)
{
PGPROC *holder = BackendIdGetProc(old_snapshots[i].backendId);
- pgstat_progress_update_param(PROGRESS_WAITFOR_CURRENT_PID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_WAITFOR_CURRENT_PID,
holder->pid);
}
VirtualXactLock(old_snapshots[i], true);
}
if (progress)
- pgstat_progress_update_param(PROGRESS_WAITFOR_DONE, i + 1);
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_WAITFOR_DONE, i + 1);
}
}
@@ -491,7 +494,8 @@ DefineIndex(Oid relationId,
{
pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
relationId);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_COMMAND,
stmt->concurrent ?
PROGRESS_CREATEIDX_COMMAND_CREATE_CONCURRENTLY :
PROGRESS_CREATEIDX_COMMAND_CREATE);
@@ -500,7 +504,8 @@ DefineIndex(Oid relationId,
/*
* No index OID to report yet
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_INDEX_OID,
InvalidOid);
/*
@@ -724,7 +729,8 @@ DefineIndex(Oid relationId,
accessMethodId = accessMethodForm->oid;
amRoutine = GetIndexAmRoutine(accessMethodForm->amhandler);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_ACCESS_METHOD_OID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_ACCESS_METHOD_OID,
accessMethodId);
if (stmt->unique && !amRoutine->amcanunique)
@@ -1007,7 +1013,7 @@ DefineIndex(Oid relationId,
/* If this is the top-level index, we're done */
if (!OidIsValid(parentIndexId))
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CREATE_INDEX);
return address;
}
@@ -1034,7 +1040,8 @@ DefineIndex(Oid relationId,
TupleDesc parentDesc;
Oid *opfamOids;
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PARTITIONS_TOTAL,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PARTITIONS_TOTAL,
nparts);
memcpy(part_oids, partdesc->oids, sizeof(Oid) * nparts);
@@ -1214,7 +1221,8 @@ DefineIndex(Oid relationId,
skip_build, quiet);
}
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PARTITIONS_DONE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PARTITIONS_DONE,
i + 1);
pfree(attmap);
}
@@ -1250,7 +1258,7 @@ DefineIndex(Oid relationId,
*/
table_close(rel, NoLock);
if (!OidIsValid(parentIndexId))
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CREATE_INDEX);
return address;
}
@@ -1261,7 +1269,7 @@ DefineIndex(Oid relationId,
/* If this is the top-level index, we're done. */
if (!OidIsValid(parentIndexId))
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CREATE_INDEX);
return address;
}
@@ -1301,7 +1309,8 @@ DefineIndex(Oid relationId,
/*
* The index is now visible, so we can report the OID.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_INDEX_OID,
indexRelationId);
/*
@@ -1320,7 +1329,8 @@ DefineIndex(Oid relationId,
* exclusive lock on our table. The lock code will detect deadlock and
* error out properly.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_WAIT_1);
WaitForLockers(heaplocktag, ShareLock, true);
@@ -1363,7 +1373,8 @@ DefineIndex(Oid relationId,
* We once again wait until no transaction can have the table open with
* the index marked as read-only for updates.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_WAIT_2);
WaitForLockers(heaplocktag, ShareLock, true);
@@ -1422,7 +1433,8 @@ DefineIndex(Oid relationId,
* before the reference snap was taken, we have to wait out any
* transactions that might have older snapshots.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_WAIT_3);
WaitForOlderSnapshots(limitXmin, true);
@@ -1446,7 +1458,7 @@ DefineIndex(Oid relationId,
*/
UnlockRelationIdForSession(&heaprelid, ShareUpdateExclusiveLock);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CREATE_INDEX);
return address;
}
@@ -2939,11 +2951,14 @@ ReindexRelationConcurrently(Oid relationOid, int options)
pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
RelationGetRelid(heapRel));
- pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_COMMAND,
PROGRESS_CREATEIDX_COMMAND_REINDEX_CONCURRENTLY);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_INDEX_OID,
indexId);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_ACCESS_METHOD_OID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_ACCESS_METHOD_OID,
indexRel->rd_rel->relam);
/* Choose a temporary relation name for the new index */
@@ -3040,7 +3055,8 @@ ReindexRelationConcurrently(Oid relationOid, int options)
* DefineIndex() for more details.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_WAIT_1);
WaitForLockersMultiple(lockTags, ShareLock, true);
CommitTransactionCommand();
@@ -3084,7 +3100,8 @@ ReindexRelationConcurrently(Oid relationOid, int options)
* for more details.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_WAIT_2);
WaitForLockersMultiple(lockTags, ShareLock, true);
CommitTransactionCommand();
@@ -3134,7 +3151,8 @@ ReindexRelationConcurrently(Oid relationOid, int options)
* just before the reference snap was taken, we have to wait out any
* transactions that might have older snapshots.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_WAIT_3);
WaitForOlderSnapshots(limitXmin, true);
@@ -3207,7 +3225,8 @@ ReindexRelationConcurrently(Oid relationOid, int options)
* index_drop() for more details.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_WAIT_4);
WaitForLockersMultiple(lockTags, AccessExclusiveLock, true);
@@ -3231,7 +3250,8 @@ ReindexRelationConcurrently(Oid relationOid, int options)
* Drop the old indexes.
*/
- pgstat_progress_update_param(PROGRESS_CREATEIDX_PHASE,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_CREATEIDX_PHASE,
PROGRESS_CREATEIDX_PHASE_WAIT_4);
WaitForLockersMultiple(lockTags, AccessExclusiveLock, true);
@@ -3308,7 +3328,7 @@ ReindexRelationConcurrently(Oid relationOid, int options)
MemoryContextDelete(private_context);
- pgstat_progress_end_command();
+ pgstat_progress_end_command(PROGRESS_COMMAND_CREATE_INDEX);
return true;
}
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 099e14d..552779d 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -3203,6 +3203,9 @@ pgstat_progress_start_command(ProgressCommandType cmdtype, Oid relid)
if (!beentry || !pgstat_track_activities)
return;
+ if (beentry->st_progress_command != PROGRESS_COMMAND_INVALID)
+ return;
+
PGSTAT_BEGIN_WRITE_ACTIVITY(beentry);
beentry->st_progress_command = cmdtype;
beentry->st_progress_command_target = relid;
@@ -3217,7 +3220,7 @@ pgstat_progress_start_command(ProgressCommandType cmdtype, Oid relid)
*-----------
*/
void
-pgstat_progress_update_param(int index, int64 val)
+pgstat_progress_update_param(ProgressCommandType cmdtype, int index, int64 val)
{
volatile PgBackendStatus *beentry = MyBEEntry;
@@ -3226,6 +3229,9 @@ pgstat_progress_update_param(int index, int64 val)
if (!beentry || !pgstat_track_activities)
return;
+ if (beentry->st_progress_command != cmdtype)
+ return;
+
PGSTAT_BEGIN_WRITE_ACTIVITY(beentry);
beentry->st_progress_param[index] = val;
PGSTAT_END_WRITE_ACTIVITY(beentry);
@@ -3239,7 +3245,8 @@ pgstat_progress_update_param(int index, int64 val)
*-----------
*/
void
-pgstat_progress_update_multi_param(int nparam, const int *index,
+pgstat_progress_update_multi_param(ProgressCommandType cmdtype,
+ int nparam, const int *index,
const int64 *val)
{
volatile PgBackendStatus *beentry = MyBEEntry;
@@ -3248,6 +3255,9 @@ pgstat_progress_update_multi_param(int nparam, const int *index,
if (!beentry || !pgstat_track_activities || nparam == 0)
return;
+ if (beentry->st_progress_command != cmdtype)
+ return;
+
PGSTAT_BEGIN_WRITE_ACTIVITY(beentry);
for (i = 0; i < nparam; ++i)
@@ -3268,14 +3278,14 @@ pgstat_progress_update_multi_param(int nparam, const int *index,
*-----------
*/
void
-pgstat_progress_end_command(void)
+pgstat_progress_end_command(ProgressCommandType cmdtype)
{
volatile PgBackendStatus *beentry = MyBEEntry;
if (!beentry || !pgstat_track_activities)
return;
- if (beentry->st_progress_command == PROGRESS_COMMAND_INVALID)
+ if (beentry->st_progress_command != cmdtype)
return;
PGSTAT_BEGIN_WRITE_ACTIVITY(beentry);
diff --git a/src/backend/storage/lmgr/lmgr.c b/src/backend/storage/lmgr/lmgr.c
index f838b0f..52efd31 100644
--- a/src/backend/storage/lmgr/lmgr.c
+++ b/src/backend/storage/lmgr/lmgr.c
@@ -885,7 +885,8 @@ WaitForLockersMultiple(List *locktags, LOCKMODE lockmode, bool progress)
}
if (progress)
- pgstat_progress_update_param(PROGRESS_WAITFOR_TOTAL, total);
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_WAITFOR_TOTAL, total);
/*
* Note: GetLockConflicts() never reports our own xid, hence we need not
@@ -908,14 +909,16 @@ WaitForLockersMultiple(List *locktags, LOCKMODE lockmode, bool progress)
{
PGPROC *holder = BackendIdGetProc(lockholders->backendId);
- pgstat_progress_update_param(PROGRESS_WAITFOR_CURRENT_PID,
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_WAITFOR_CURRENT_PID,
holder->pid);
}
VirtualXactLock(*lockholders, true);
lockholders++;
if (progress)
- pgstat_progress_update_param(PROGRESS_WAITFOR_DONE, ++done);
+ pgstat_progress_update_param(PROGRESS_COMMAND_CREATE_INDEX,
+ PROGRESS_WAITFOR_DONE, ++done);
}
}
if (progress)
@@ -929,7 +932,8 @@ WaitForLockersMultiple(List *locktags, LOCKMODE lockmode, bool progress)
0, 0, 0
};
- pgstat_progress_update_multi_param(3, index, values);
+ pgstat_progress_update_multi_param(PROGRESS_COMMAND_CREATE_INDEX,
+ 3, index, values);
}
list_free_deep(holders);
diff --git a/src/include/pgstat.h b/src/include/pgstat.h
index 0a3ad3a..a5c3ca2 100644
--- a/src/include/pgstat.h
+++ b/src/include/pgstat.h
@@ -1288,10 +1288,12 @@ extern const char *pgstat_get_backend_desc(BackendType backendType);
extern void pgstat_progress_start_command(ProgressCommandType cmdtype,
Oid relid);
-extern void pgstat_progress_update_param(int index, int64 val);
-extern void pgstat_progress_update_multi_param(int nparam, const int *index,
+extern void pgstat_progress_update_param(ProgressCommandType cmdtype,
+ int index, int64 val);
+extern void pgstat_progress_update_multi_param(ProgressCommandType cmdtype,
+ int nparam, const int *index,
const int64 *val);
-extern void pgstat_progress_end_command(void);
+extern void pgstat_progress_end_command(ProgressCommandType cmdtype);
extern PgStat_TableStatus *find_tabstat_entry(Oid rel_id);
extern PgStat_BackendFunctionEntry *find_funcstat_entry(Oid func_id);