1 /* ----------
2  * backend_progress.h
3  *	  Command progress reporting definition.
4  *
5  * Note that this file provides the infrastructure for storing a single
6  * backend's command progress counters, without ascribing meaning to the
7  * individual fields. See commands/progress.h and system_views.sql for that.
8  *
9  * Copyright (c) 2001-2021, PostgreSQL Global Development Group
10  *
11  * src/include/utils/backend_progress.h
12  * ----------
13  */
14 #ifndef BACKEND_PROGRESS_H
15 #define BACKEND_PROGRESS_H
16 
17 
18 /* ----------
19  * Command type for progress reporting purposes
20  * ----------
21  */
22 typedef enum ProgressCommandType
23 {
24 	PROGRESS_COMMAND_INVALID,
25 	PROGRESS_COMMAND_VACUUM,
26 	PROGRESS_COMMAND_ANALYZE,
27 	PROGRESS_COMMAND_CLUSTER,
28 	PROGRESS_COMMAND_CREATE_INDEX,
29 	PROGRESS_COMMAND_BASEBACKUP,
30 	PROGRESS_COMMAND_COPY
31 } ProgressCommandType;
32 
33 #define PGSTAT_NUM_PROGRESS_PARAM	20
34 
35 
36 extern void pgstat_progress_start_command(ProgressCommandType cmdtype,
37 										  Oid relid);
38 extern void pgstat_progress_update_param(int index, int64 val);
39 extern void pgstat_progress_update_multi_param(int nparam, const int *index,
40 											   const int64 *val);
41 extern void pgstat_progress_end_command(void);
42 
43 
44 #endif							/* BACKEND_PROGRESS_H */
45