mirror of
https://github.com/postgres/postgres.git
synced 2025-07-11 10:01:57 +03:00
Separate state from query string in pg_stat_activity
This separates the state (running/idle/idleintransaction etc) into it's own field ("state"), and leaves the query field containing just query text. The query text will now mean "current query" when a query is running and "last query" in other states. Accordingly,the field has been renamed from current_query to query. Since backwards compatibility was broken anyway to make that, the procpid field has also been renamed to pid - along with the same field in pg_stat_replication for consistency. Scott Mead and Magnus Hagander, review work from Greg Smith
This commit is contained in:
@ -588,11 +588,26 @@ typedef struct PgStat_GlobalStats
|
||||
} 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);
|
||||
|
Reference in New Issue
Block a user