MCPcopy Create free account
hub / github.com/PostHog/duckgres / scanPgStatActivityRow

Function scanPgStatActivityRow

tests/integration/pg_stat_activity_test.go:15–67  ·  view source on GitHub ↗

scanPgStatActivityRow scans a full pg_stat_activity row into a map. All 21 columns are always returned regardless of the SELECT column list, so we must scan all of them.

(rows *sql.Rows)

Source from the content-addressed store, hash-verified

13// All 21 columns are always returned regardless of the SELECT column list,
14// so we must scan all of them.
15func scanPgStatActivityRow(rows *sql.Rows) (map[string]interface{}, error) {
16 var (
17 datid, pid, usesysid, clientPort, workerID int
18 datname, usename, appName, clientAddr, state, query string
19 backendType string
20 backendStart time.Time
21 xactStart, queryStart, stateChange sql.NullTime
22 waitEventType, waitEvent sql.NullString
23 backendXid, backendXmin, leaderPid sql.NullInt32
24 queryProgress float64
25 rowsProcessed, totalRowsToProcess int64
26 )
27
28 err := rows.Scan(
29 &datid, &datname, &pid, &usesysid, &usename,
30 &appName, &clientAddr, &clientPort,
31 &backendStart, &xactStart, &queryStart, &stateChange,
32 &waitEventType, &waitEvent, &state,
33 &backendXid, &backendXmin, &query,
34 &backendType, &leaderPid, &workerID,
35 &queryProgress, &rowsProcessed, &totalRowsToProcess,
36 )
37 if err != nil {
38 return nil, err
39 }
40
41 return map[string]interface{}{
42 "datid": datid,
43 "datname": datname,
44 "pid": pid,
45 "usesysid": usesysid,
46 "usename": usename,
47 "application_name": appName,
48 "client_addr": clientAddr,
49 "client_port": clientPort,
50 "backend_start": backendStart,
51 "xact_start": xactStart,
52 "query_start": queryStart,
53 "state_change": stateChange,
54 "wait_event_type": waitEventType,
55 "wait_event": waitEvent,
56 "state": state,
57 "backend_xid": backendXid,
58 "backend_xmin": backendXmin,
59 "query": query,
60 "backend_type": backendType,
61 "leader_pid": leaderPid,
62 "worker_id": workerID,
63 "query_progress": queryProgress,
64 "rows_processed": rowsProcessed,
65 "total_rows_to_process": totalRowsToProcess,
66 }, nil
67}
68
69// queryPgStatActivity returns all rows from pg_stat_activity as maps.
70func queryPgStatActivity(db *sql.DB) ([]map[string]interface{}, error) {

Calls 1

ScanMethod · 0.65

Tested by

no test coverage detected