39
client.go
39
client.go
@@ -50,23 +50,11 @@ func (client *Client) recordQuery(query string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (client *Client) Info() (*Result, error) {
|
func (client *Client) Info() (*Result, error) {
|
||||||
return client.query(`
|
return client.query(PG_INFO)
|
||||||
SELECT session_user
|
|
||||||
, current_user
|
|
||||||
, current_database()
|
|
||||||
, current_schemas(false)
|
|
||||||
, inet_client_addr()
|
|
||||||
, inet_client_port()
|
|
||||||
, inet_server_addr()
|
|
||||||
, inet_server_port()
|
|
||||||
, version()`,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *Client) Databases() ([]string, error) {
|
func (client *Client) Databases() ([]string, error) {
|
||||||
res, err := client.query(`
|
res, err := client.query(PG_DATABASES)
|
||||||
SELECT datname FROM pg_database WHERE datistemplate = false ORDER BY datname ASC`,
|
|
||||||
)
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -82,9 +70,7 @@ SELECT datname FROM pg_database WHERE datistemplate = false ORDER BY datname ASC
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (client *Client) Tables() ([]string, error) {
|
func (client *Client) Tables() ([]string, error) {
|
||||||
res, err := client.query(`
|
res, err := client.query(PG_TABLES)
|
||||||
SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_schema,table_name`,
|
|
||||||
)
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -100,28 +86,15 @@ SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' O
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (client *Client) Table(table string) (*Result, error) {
|
func (client *Client) Table(table string) (*Result, error) {
|
||||||
return client.query(`
|
return client.query(PG_TABLE_SCHEMA, table)
|
||||||
SELECT column_name, data_type, is_nullable, character_maximum_length, character_set_catalog, column_default FROM information_schema.columns where table_name = $1`,
|
|
||||||
table,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *Client) TableInfo(table string) (*Result, error) {
|
func (client *Client) TableInfo(table string) (*Result, error) {
|
||||||
return client.query(`
|
return client.query(PG_TABLE_INFO, table)
|
||||||
SELECT
|
|
||||||
pg_size_pretty(pg_table_size($1)) AS data_size
|
|
||||||
, pg_size_pretty(pg_indexes_size($1)) AS index_size
|
|
||||||
, pg_size_pretty(pg_total_relation_size($1)) AS total_size
|
|
||||||
, (SELECT reltuples FROM pg_class WHERE oid = $1::regclass) AS rows_count`,
|
|
||||||
table,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *Client) TableIndexes(table string) (*Result, error) {
|
func (client *Client) TableIndexes(table string) (*Result, error) {
|
||||||
res, err := client.query(`
|
res, err := client.query(PG_TABLE_INDEXES, table)
|
||||||
SELECT indexname, indexdef FROM pg_indexes WHERE tablename = $1`,
|
|
||||||
table,
|
|
||||||
)
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
31
statements.go
Normal file
31
statements.go
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
const (
|
||||||
|
PG_DATABASES = `SELECT datname FROM pg_database WHERE NOT datistemplate ORDER BY datname ASC`
|
||||||
|
|
||||||
|
PG_INFO = `SELECT
|
||||||
|
session_user
|
||||||
|
, current_user
|
||||||
|
, current_database()
|
||||||
|
, current_schemas(false)
|
||||||
|
, inet_client_addr()
|
||||||
|
, inet_client_port()
|
||||||
|
, inet_server_addr()
|
||||||
|
, inet_server_port()
|
||||||
|
, version()`
|
||||||
|
|
||||||
|
PG_TABLE_INDEXES = `SELECT indexname, indexdef FROM pg_indexes WHERE tablename = $1`
|
||||||
|
|
||||||
|
PG_TABLE_INFO = `SELECT
|
||||||
|
pg_size_pretty(pg_table_size($1)) AS data_size
|
||||||
|
, pg_size_pretty(pg_indexes_size($1)) AS index_size
|
||||||
|
, pg_size_pretty(pg_total_relation_size($1)) AS total_size
|
||||||
|
, (SELECT reltuples FROM pg_class WHERE oid = $1::regclass) AS rows_count`
|
||||||
|
|
||||||
|
PG_TABLE_SCHEMA = `SELECT
|
||||||
|
column_name, data_type, is_nullable, character_maximum_length, character_set_catalog, column_default
|
||||||
|
FROM information_schema.columns
|
||||||
|
WHERE table_name = $1`
|
||||||
|
|
||||||
|
PG_TABLES = `SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_schema,table_name`
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user