PostgreSQL Source Code
git master
Loading...
Searching...
No Matches
progress.h
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* progress.h
4
* Constants used with the progress reporting facilities defined in
5
* backend_status.h. These are possibly interesting to extensions, so we
6
* expose them via this header file. Note that if you update these
7
* constants, you probably also need to update the views based on them
8
* in system_views.sql.
9
*
10
* Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
11
* Portions Copyright (c) 1994, Regents of the University of California
12
*
13
* src/include/commands/progress.h
14
*
15
*-------------------------------------------------------------------------
16
*/
17
#ifndef PROGRESS_H
18
#define PROGRESS_H
19
20
/* Progress parameters for (lazy) vacuum */
21
#define PROGRESS_VACUUM_PHASE 0
22
#define PROGRESS_VACUUM_TOTAL_HEAP_BLKS 1
23
#define PROGRESS_VACUUM_HEAP_BLKS_SCANNED 2
24
#define PROGRESS_VACUUM_HEAP_BLKS_VACUUMED 3
25
#define PROGRESS_VACUUM_NUM_INDEX_VACUUMS 4
26
#define PROGRESS_VACUUM_MAX_DEAD_TUPLE_BYTES 5
27
#define PROGRESS_VACUUM_DEAD_TUPLE_BYTES 6
28
#define PROGRESS_VACUUM_NUM_DEAD_ITEM_IDS 7
29
#define PROGRESS_VACUUM_INDEXES_TOTAL 8
30
#define PROGRESS_VACUUM_INDEXES_PROCESSED 9
31
#define PROGRESS_VACUUM_DELAY_TIME 10
32
#define PROGRESS_VACUUM_MODE 11
33
#define PROGRESS_VACUUM_STARTED_BY 12
34
35
/* Phases of vacuum (as advertised via PROGRESS_VACUUM_PHASE) */
36
#define PROGRESS_VACUUM_PHASE_SCAN_HEAP 1
37
#define PROGRESS_VACUUM_PHASE_VACUUM_INDEX 2
38
#define PROGRESS_VACUUM_PHASE_VACUUM_HEAP 3
39
#define PROGRESS_VACUUM_PHASE_INDEX_CLEANUP 4
40
#define PROGRESS_VACUUM_PHASE_TRUNCATE 5
41
#define PROGRESS_VACUUM_PHASE_FINAL_CLEANUP 6
42
43
/* Modes of vacuum (as advertised via PROGRESS_VACUUM_MODE) */
44
#define PROGRESS_VACUUM_MODE_NORMAL 1
45
#define PROGRESS_VACUUM_MODE_AGGRESSIVE 2
46
#define PROGRESS_VACUUM_MODE_FAILSAFE 3
47
48
/* Reasons for vacuum (as advertised via PROGRESS_VACUUM_STARTED_BY) */
49
#define PROGRESS_VACUUM_STARTED_BY_MANUAL 1
50
#define PROGRESS_VACUUM_STARTED_BY_AUTOVACUUM 2
51
#define PROGRESS_VACUUM_STARTED_BY_AUTOVACUUM_WRAPAROUND 3
52
53
/* Progress parameters for analyze */
54
#define PROGRESS_ANALYZE_PHASE 0
55
#define PROGRESS_ANALYZE_BLOCKS_TOTAL 1
56
#define PROGRESS_ANALYZE_BLOCKS_DONE 2
57
#define PROGRESS_ANALYZE_EXT_STATS_TOTAL 3
58
#define PROGRESS_ANALYZE_EXT_STATS_COMPUTED 4
59
#define PROGRESS_ANALYZE_CHILD_TABLES_TOTAL 5
60
#define PROGRESS_ANALYZE_CHILD_TABLES_DONE 6
61
#define PROGRESS_ANALYZE_CURRENT_CHILD_TABLE_RELID 7
62
#define PROGRESS_ANALYZE_DELAY_TIME 8
63
#define PROGRESS_ANALYZE_STARTED_BY 9
64
65
/* Phases of analyze (as advertised via PROGRESS_ANALYZE_PHASE) */
66
#define PROGRESS_ANALYZE_PHASE_ACQUIRE_SAMPLE_ROWS 1
67
#define PROGRESS_ANALYZE_PHASE_ACQUIRE_SAMPLE_ROWS_INH 2
68
#define PROGRESS_ANALYZE_PHASE_COMPUTE_STATS 3
69
#define PROGRESS_ANALYZE_PHASE_COMPUTE_EXT_STATS 4
70
#define PROGRESS_ANALYZE_PHASE_FINALIZE_ANALYZE 5
71
72
/* Reasons for analyze (as advertised via PROGRESS_ANALYZE_STARTED_BY) */
73
#define PROGRESS_ANALYZE_STARTED_BY_MANUAL 1
74
#define PROGRESS_ANALYZE_STARTED_BY_AUTOVACUUM 2
75
76
/*
77
* Progress parameters for REPACK.
78
*
79
* Values for PROGRESS_REPACK_COMMAND are as in RepackCommand.
80
*
81
* Note: Since REPACK shares code with CLUSTER, these values are also
82
* used by CLUSTER. (CLUSTER being now deprecated, it makes little sense to
83
* maintain a separate set of constants.)
84
*/
85
#define PROGRESS_REPACK_COMMAND 0
86
#define PROGRESS_REPACK_PHASE 1
87
#define PROGRESS_REPACK_INDEX_RELID 2
88
#define PROGRESS_REPACK_HEAP_TUPLES_SCANNED 3
89
#define PROGRESS_REPACK_HEAP_TUPLES_INSERTED 4
90
#define PROGRESS_REPACK_HEAP_TUPLES_UPDATED 5
91
#define PROGRESS_REPACK_HEAP_TUPLES_DELETED 6
92
#define PROGRESS_REPACK_TOTAL_HEAP_BLKS 7
93
#define PROGRESS_REPACK_HEAP_BLKS_SCANNED 8
94
#define PROGRESS_REPACK_INDEX_REBUILD_COUNT 9
95
96
/*
97
* Phases of repack (as advertised via PROGRESS_REPACK_PHASE).
98
*/
99
#define PROGRESS_REPACK_PHASE_SEQ_SCAN_HEAP 1
100
#define PROGRESS_REPACK_PHASE_INDEX_SCAN_HEAP 2
101
#define PROGRESS_REPACK_PHASE_SORT_TUPLES 3
102
#define PROGRESS_REPACK_PHASE_WRITE_NEW_HEAP 4
103
#define PROGRESS_REPACK_PHASE_CATCH_UP 5
104
#define PROGRESS_REPACK_PHASE_SWAP_REL_FILES 6
105
#define PROGRESS_REPACK_PHASE_REBUILD_INDEX 7
106
#define PROGRESS_REPACK_PHASE_FINAL_CLEANUP 8
107
108
/* Progress parameters for CREATE INDEX */
109
/* 3, 4 and 5 reserved for "waitfor" metrics */
110
#define PROGRESS_CREATEIDX_COMMAND 0
111
#define PROGRESS_CREATEIDX_INDEX_OID 6
112
#define PROGRESS_CREATEIDX_ACCESS_METHOD_OID 8
113
#define PROGRESS_CREATEIDX_PHASE 9
/* AM-agnostic phase # */
114
#define PROGRESS_CREATEIDX_SUBPHASE 10
/* phase # filled by AM */
115
#define PROGRESS_CREATEIDX_TUPLES_TOTAL 11
116
#define PROGRESS_CREATEIDX_TUPLES_DONE 12
117
#define PROGRESS_CREATEIDX_PARTITIONS_TOTAL 13
118
#define PROGRESS_CREATEIDX_PARTITIONS_DONE 14
119
/* 15 and 16 reserved for "block number" metrics */
120
121
/* Phases of CREATE INDEX (as advertised via PROGRESS_CREATEIDX_PHASE) */
122
#define PROGRESS_CREATEIDX_PHASE_WAIT_1 1
123
#define PROGRESS_CREATEIDX_PHASE_BUILD 2
124
#define PROGRESS_CREATEIDX_PHASE_WAIT_2 3
125
#define PROGRESS_CREATEIDX_PHASE_VALIDATE_IDXSCAN 4
126
#define PROGRESS_CREATEIDX_PHASE_VALIDATE_SORT 5
127
#define PROGRESS_CREATEIDX_PHASE_VALIDATE_TABLESCAN 6
128
#define PROGRESS_CREATEIDX_PHASE_WAIT_3 7
129
#define PROGRESS_CREATEIDX_PHASE_WAIT_4 8
130
#define PROGRESS_CREATEIDX_PHASE_WAIT_5 9
131
132
/*
133
* Subphases of CREATE INDEX, for index_build.
134
*/
135
#define PROGRESS_CREATEIDX_SUBPHASE_INITIALIZE 1
136
/* Additional phases are defined by each AM */
137
138
/* Commands of PROGRESS_CREATEIDX */
139
#define PROGRESS_CREATEIDX_COMMAND_CREATE 1
140
#define PROGRESS_CREATEIDX_COMMAND_CREATE_CONCURRENTLY 2
141
#define PROGRESS_CREATEIDX_COMMAND_REINDEX 3
142
#define PROGRESS_CREATEIDX_COMMAND_REINDEX_CONCURRENTLY 4
143
144
/* Lock holder wait counts */
145
#define PROGRESS_WAITFOR_TOTAL 3
146
#define PROGRESS_WAITFOR_DONE 4
147
#define PROGRESS_WAITFOR_CURRENT_PID 5
148
149
/* Block numbers in a generic relation scan */
150
#define PROGRESS_SCAN_BLOCKS_TOTAL 15
151
#define PROGRESS_SCAN_BLOCKS_DONE 16
152
153
/* Progress parameters for pg_basebackup */
154
#define PROGRESS_BASEBACKUP_PHASE 0
155
#define PROGRESS_BASEBACKUP_BACKUP_TOTAL 1
156
#define PROGRESS_BASEBACKUP_BACKUP_STREAMED 2
157
#define PROGRESS_BASEBACKUP_TBLSPC_TOTAL 3
158
#define PROGRESS_BASEBACKUP_TBLSPC_STREAMED 4
159
#define PROGRESS_BASEBACKUP_BACKUP_TYPE 5
160
161
/* Phases of pg_basebackup (as advertised via PROGRESS_BASEBACKUP_PHASE) */
162
#define PROGRESS_BASEBACKUP_PHASE_WAIT_CHECKPOINT 1
163
#define PROGRESS_BASEBACKUP_PHASE_ESTIMATE_BACKUP_SIZE 2
164
#define PROGRESS_BASEBACKUP_PHASE_STREAM_BACKUP 3
165
#define PROGRESS_BASEBACKUP_PHASE_WAIT_WAL_ARCHIVE 4
166
#define PROGRESS_BASEBACKUP_PHASE_TRANSFER_WAL 5
167
168
/* Types of pg_basebackup (as advertised via PROGRESS_BASEBACKUP_BACKUP_TYPE) */
169
#define PROGRESS_BASEBACKUP_BACKUP_TYPE_FULL 1
170
#define PROGRESS_BASEBACKUP_BACKUP_TYPE_INCREMENTAL 2
171
172
/* Progress parameters for PROGRESS_COPY */
173
#define PROGRESS_COPY_BYTES_PROCESSED 0
174
#define PROGRESS_COPY_BYTES_TOTAL 1
175
#define PROGRESS_COPY_TUPLES_PROCESSED 2
176
#define PROGRESS_COPY_TUPLES_EXCLUDED 3
177
#define PROGRESS_COPY_COMMAND 4
178
#define PROGRESS_COPY_TYPE 5
179
#define PROGRESS_COPY_TUPLES_SKIPPED 6
180
181
/* Commands of COPY (as advertised via PROGRESS_COPY_COMMAND) */
182
#define PROGRESS_COPY_COMMAND_FROM 1
183
#define PROGRESS_COPY_COMMAND_TO 2
184
185
/* Types of COPY commands (as advertised via PROGRESS_COPY_TYPE) */
186
#define PROGRESS_COPY_TYPE_FILE 1
187
#define PROGRESS_COPY_TYPE_PROGRAM 2
188
#define PROGRESS_COPY_TYPE_PIPE 3
189
#define PROGRESS_COPY_TYPE_CALLBACK 4
190
191
/* Progress parameters for PROGRESS_DATACHECKSUMS */
192
#define PROGRESS_DATACHECKSUMS_PHASE 0
193
#define PROGRESS_DATACHECKSUMS_DBS_TOTAL 1
194
#define PROGRESS_DATACHECKSUMS_DBS_DONE 2
195
#define PROGRESS_DATACHECKSUMS_RELS_TOTAL 3
196
#define PROGRESS_DATACHECKSUMS_RELS_DONE 4
197
#define PROGRESS_DATACHECKSUMS_BLOCKS_TOTAL 5
198
#define PROGRESS_DATACHECKSUMS_BLOCKS_DONE 6
199
200
/* Phases of datachecksumsworker operation */
201
#define PROGRESS_DATACHECKSUMS_PHASE_ENABLING 0
202
#define PROGRESS_DATACHECKSUMS_PHASE_DISABLING 1
203
#define PROGRESS_DATACHECKSUMS_PHASE_WAITING_TEMPREL 2
204
#define PROGRESS_DATACHECKSUMS_PHASE_WAITING_BARRIER 3
205
#define PROGRESS_DATACHECKSUMS_PHASE_DONE 4
206
207
#endif
src
include
commands
progress.h
Generated on Fri Apr 10 2026 17:13:15 for PostgreSQL Source Code by
1.9.8