1// Package models contains the types for schema 'public'.
2package models
3
4// Code generated by xo. DO NOT EDIT.
5
6// Counters represents a row from '[custom counters]'.
7type Counters struct {
8	Datname      Name  // datname
9	Numbackends  int   // numbackends
10	XactCommit   int64 // xact_commit
11	XactRollback int64 // xact_rollback
12	BlksRead     int64 // blks_read
13	BlksHit      int64 // blks_hit
14	TupReturned  int64 // tup_returned
15	TupFetched   int64 // tup_fetched
16	TupInserted  int64 // tup_inserted
17	TupUpdated   int64 // tup_updated
18	TupDeleted   int64 // tup_deleted
19	Conflicts    int64 // conflicts
20	TempFiles    int64 // temp_files
21	TempBytes    int64 // temp_bytes
22	Deadlocks    int64 // deadlocks
23}
24
25// GetCounters runs a custom query, returning results as Counters.
26func GetCounters(db XODB) ([]*Counters, error) {
27	var err error
28
29	// sql query
30	sqlstr := `SELECT COALESCE(datname, '') datname, numbackends, xact_commit, xact_rollback, ` +
31		`blks_read, blks_hit, tup_returned, tup_fetched, tup_inserted, ` +
32		`tup_updated, tup_deleted, conflicts, temp_files, ` +
33		`temp_bytes, deadlocks ` +
34		`FROM pg_stat_database ` +
35		`ORDER BY datname`
36
37	// run query
38	XOLog(sqlstr)
39	q, err := db.Query(sqlstr)
40	if err != nil {
41		return nil, err
42	}
43	defer q.Close()
44
45	// load results
46	res := []*Counters{}
47	for q.Next() {
48		c := Counters{}
49
50		// scan
51		err = q.Scan(&c.Datname, &c.Numbackends, &c.XactCommit, &c.XactRollback, &c.BlksRead, &c.BlksHit, &c.TupReturned, &c.TupFetched, &c.TupInserted, &c.TupUpdated, &c.TupDeleted, &c.Conflicts, &c.TempFiles, &c.TempBytes, &c.Deadlocks)
52		if err != nil {
53			return nil, err
54		}
55
56		res = append(res, &c)
57	}
58
59	return res, nil
60}
61