Initial support for multiple schemas
This commit is contained in:
@@ -1,49 +1,110 @@
|
||||
package statements
|
||||
|
||||
const (
|
||||
PG_DATABASES = `SELECT datname FROM pg_database WHERE NOT datistemplate ORDER BY datname ASC`
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
PG_SCHEMAS = `SELECT schema_name FROM information_schema.schemata ORDER BY schema_name ASC`
|
||||
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_SCHEMAS = `
|
||||
SELECT
|
||||
schema_name
|
||||
FROM
|
||||
information_schema.schemata
|
||||
ORDER BY
|
||||
schema_name ASC`
|
||||
|
||||
PG_TABLE_CONSTRAINTS = `SELECT
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
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
|
||||
schemaname = $1 AND
|
||||
tablename = $2`
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
PG_TABLE_CONSTRAINTS = `
|
||||
SELECT
|
||||
pg_get_constraintdef(c.oid, true) as condef
|
||||
FROM pg_constraint c
|
||||
JOIN pg_namespace n ON n.oid = c.connamespace
|
||||
JOIN pg_class cl ON cl.oid = c.conrelid
|
||||
WHERE n.nspname = 'public'
|
||||
AND relname = $1
|
||||
ORDER BY contype desc`
|
||||
FROM
|
||||
pg_constraint c
|
||||
JOIN
|
||||
pg_namespace n ON n.oid = c.connamespace
|
||||
JOIN
|
||||
pg_class cl ON cl.oid = c.conrelid
|
||||
WHERE
|
||||
n.nspname = $1 AND
|
||||
relname = $2
|
||||
ORDER BY
|
||||
contype desc`
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
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_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`
|
||||
PG_TABLE_SCHEMA = `
|
||||
SELECT
|
||||
column_name,
|
||||
data_type,
|
||||
is_nullable,
|
||||
character_maximum_length,
|
||||
character_set_catalog,
|
||||
column_default
|
||||
FROM
|
||||
information_schema.columns
|
||||
WHERE
|
||||
table_schema = $1 AND
|
||||
table_name = $2`
|
||||
|
||||
PG_SEQUENCES = `SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = 'public' ORDER BY sequence_name`
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
PG_ACTIVITY = `SELECT
|
||||
PG_SEQUENCES = `
|
||||
SELECT
|
||||
sequence_name
|
||||
FROM
|
||||
information_schema.sequences
|
||||
WHERE
|
||||
sequence_schema = 'public'
|
||||
ORDER BY sequence_name`
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
PG_ACTIVITY = `
|
||||
SELECT
|
||||
datname,
|
||||
query,
|
||||
state,
|
||||
@@ -54,6 +115,34 @@ WHERE table_name = $1`
|
||||
datid,
|
||||
application_name,
|
||||
client_addr
|
||||
FROM pg_stat_activity
|
||||
WHERE state IS NOT NULL`
|
||||
FROM
|
||||
pg_stat_activity
|
||||
WHERE
|
||||
state IS NOT NULL`
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
PG_OBJECTS = `
|
||||
SELECT
|
||||
n.nspname as "schema",
|
||||
c.relname as "name",
|
||||
CASE c.relkind
|
||||
WHEN 'r' THEN 'table'
|
||||
WHEN 'v' THEN 'view'
|
||||
WHEN 'm' THEN 'materialized_view'
|
||||
WHEN 'i' THEN 'index'
|
||||
WHEN 'S' THEN 'sequence'
|
||||
WHEN 's' THEN 'special'
|
||||
WHEN 'f' THEN 'foreign_table'
|
||||
END as "type",
|
||||
pg_catalog.pg_get_userbyid(c.relowner) as "owner"
|
||||
FROM
|
||||
pg_catalog.pg_class c
|
||||
LEFT JOIN
|
||||
pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE
|
||||
c.relkind IN ('r','v','S','s','') AND
|
||||
n.nspname !~ '^pg_toast' AND
|
||||
n.nspname NOT IN ('information_schema', 'pg_catalog')
|
||||
ORDER BY 1, 2`
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user