1// Package models contains the types for schema 'public'. 2package models 3 4// Code generated by xo. DO NOT EDIT. 5 6import ( 7 "database/sql" 8) 9 10// Table Access 11type TableAccess struct { 12 Relname string // relname 13 Relkind string // relkind 14 Datname sql.NullString // datname 15 Count sql.NullInt64 // count 16} 17 18// GetTableAccesses runs a custom query, returning results as TableAccess. 19func GetTableAccesses(db XODB) ([]*TableAccess, error) { 20 var err error 21 22 // sql query 23 sqlstr := `SELECT c.relname, c.relkind, b.datname datname, count(*) FROM pg_locks a ` + 24 `JOIN pg_stat_database b ` + 25 `ON a.database=b.datid ` + 26 `JOIN pg_class c ` + 27 `ON a.relation=c.oid ` + 28 `WHERE a.relation IS NOT NULL ` + 29 `AND a.database IS NOT NULL ` + 30 `GROUP BY 1,2,3` 31 32 // run query 33 XOLog(sqlstr) 34 q, err := db.Query(sqlstr) 35 if err != nil { 36 return nil, err 37 } 38 defer q.Close() 39 40 // load results 41 res := []*TableAccess{} 42 for q.Next() { 43 ta := TableAccess{} 44 45 // scan 46 err = q.Scan(&ta.Relname, &ta.Relkind, &ta.Datname, &ta.Count) 47 if err != nil { 48 return nil, err 49 } 50 51 res = append(res, &ta) 52 } 53 54 return res, nil 55} 56