aboutsummaryrefslogtreecommitdiff
path: root/src/include/pgstat.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/pgstat.h')
-rw-r--r--src/include/pgstat.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/include/pgstat.h b/src/include/pgstat.h
index b8c6d82d0ea..fa52447048d 100644
--- a/src/include/pgstat.h
+++ b/src/include/pgstat.h
@@ -589,10 +589,25 @@ typedef struct PgStat_GlobalStats
/* ----------
+ * Backend states
+ * ----------
+ */
+typedef enum BackendState {
+ STATE_UNDEFINED,
+ STATE_IDLE,
+ STATE_RUNNING,
+ STATE_IDLEINTRANSACTION,
+ STATE_FASTPATH,
+ STATE_IDLEINTRANSACTION_ABORTED,
+ STATE_DISABLED,
+} BackendState;
+
+/* ----------
* Shared-memory data structures
* ----------
*/
+
/* ----------
* PgBackendStatus
*
@@ -622,6 +637,7 @@ typedef struct PgBackendStatus
TimestampTz st_proc_start_timestamp;
TimestampTz st_xact_start_timestamp;
TimestampTz st_activity_start_timestamp;
+ TimestampTz st_state_start_timestamp;
/* Database OID, owning user's OID, connection client address */
Oid st_databaseid;
@@ -632,6 +648,9 @@ typedef struct PgBackendStatus
/* Is backend currently waiting on an lmgr lock? */
bool st_waiting;
+ /* current state */
+ BackendState st_state;
+
/* application name; MUST be null-terminated */
char *st_appname;
@@ -715,7 +734,7 @@ extern void pgstat_report_recovery_conflict(int reason);
extern void pgstat_initialize(void);
extern void pgstat_bestart(void);
-extern void pgstat_report_activity(const char *cmd_str);
+extern void pgstat_report_activity(BackendState state, const char *cmd_str);
extern void pgstat_report_appname(const char *appname);
extern void pgstat_report_xact_timestamp(TimestampTz tstamp);
extern void pgstat_report_waiting(bool waiting);