schema

package
v1.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package schema defines all data types, request/response structures, and SQL queries for PostgreSQL management resources.

Each resource type (roles, databases, schemas, objects, etc.) has its own file containing Go structs representing PostgreSQL objects, list request parameters for filtering and pagination, and methods that produce parameterized SQL queries.

Index

Constants

View Source
const (
	CatalogSchema  = "pg_catalog"
	APIPrefix      = "/pg/v1"
	DefaultAclRole = "PUBLIC"
)
View Source
const (
	// Maximum number of items to return in a list query, for each type
	RoleListLimit            = 100
	DatabaseListLimit        = 100
	SchemaListLimit          = 100
	ObjectListLimit          = 100
	ConnectionListLimit      = 100
	TablespaceListLimit      = 100
	ExtensionListLimit       = 100
	SettingListLimit         = 500
	StatementListLimit       = 100
	ReplicationSlotListLimit = 100
)
View Source
const (
	ExtensionDef = `` /* 171-byte string literal not displayed */

)
View Source
const (
	ObjectDef = `` /* 182-byte string literal not displayed */

)
View Source
const (
	SchemaDef = `schema ("oid" OID, "database" TEXT, "name" TEXT, "owner" TEXT, "acl" TEXT[], "size" BIGINT)`
)

Variables

This section is empty.

Functions

func GrantGroupMembership

func GrantGroupMembership(ctx context.Context, conn pg.Conn, group, member string) error

GrantGroupMembership grants group membership to a role. Both group and member must be valid role names.

func RevokeGroupMembership

func RevokeGroupMembership(ctx context.Context, conn pg.Conn, group, member string) error

RevokeGroupMembership revokes group membership from a role. Both group and member must be valid role names.

Types

type ACLItem

type ACLItem struct {
	Role    string   `json:"role,omitempty" help:"Role name"`
	Priv    []string `json:"priv,omitempty" help:"Access privileges"`
	Grantor string   `json:"-" help:"Grantor"` // Ignore field for now
}

func NewACLItem

func NewACLItem(v string) (*ACLItem, error)

NewACLItem creates a new ACLItem from a PostgreSQL ACL string.

func ParseACLItem

func ParseACLItem(v string) (*ACLItem, error)

ParseACLItem parses an ACLItem from a command-line flag, like <role>:<priv>,<priv>,<priv>...

func (ACLItem) GrantDatabase

func (acl ACLItem) GrantDatabase(ctx context.Context, conn pg.Conn, name string) error

GrantDatabase grants access privileges to a database.

func (ACLItem) GrantSchema

func (acl ACLItem) GrantSchema(ctx context.Context, conn pg.Conn, name string) error

GrantSchema grants access privileges to a schema.

func (ACLItem) GrantTablespace

func (acl ACLItem) GrantTablespace(ctx context.Context, conn pg.Conn, name string) error

GrantTablespace grants access privileges to a tablespace.

func (ACLItem) IsAll

func (acl ACLItem) IsAll() bool

IsAll returns true if the ACL has ALL privileges.

func (ACLItem) MarshalText

func (a ACLItem) MarshalText() ([]byte, error)

MarshalText returns the ACLItem as text in the format role:priv,priv,...

func (ACLItem) RevokeDatabase

func (acl ACLItem) RevokeDatabase(ctx context.Context, conn pg.Conn, name string) error

RevokeDatabase revokes access privileges from a database.

func (ACLItem) RevokeSchema

func (acl ACLItem) RevokeSchema(ctx context.Context, conn pg.Conn, name string) error

RevokeSchema revokes access privileges from a schema.

func (ACLItem) RevokeTablespace

func (acl ACLItem) RevokeTablespace(ctx context.Context, conn pg.Conn, name string) error

RevokeTablespace revokes access privileges from a tablespace.

func (ACLItem) String

func (a ACLItem) String() string

func (*ACLItem) UnmarshalJSON

func (acl *ACLItem) UnmarshalJSON(data []byte) error

func (*ACLItem) UnmarshalText

func (acl *ACLItem) UnmarshalText(data []byte) error

func (ACLItem) WithPriv

func (a ACLItem) WithPriv(priv ...string) *ACLItem

type ACLList

type ACLList []*ACLItem

func (*ACLList) Append

func (acl *ACLList) Append(item *ACLItem)

Append an ACLItem to the list. If an item with the same role already exists, the privileges are merged.

func (*ACLList) Find

func (acl *ACLList) Find(role string) *ACLItem

Find an ACLItem in the list by role

func (*ACLList) UnmarshalJSON

func (acl *ACLList) UnmarshalJSON(data []byte) error

func (*ACLList) UnmarshalText

func (acl *ACLList) UnmarshalText(data []byte) error

type BootstrapResult

type BootstrapResult struct {
	// StatStatementsAvailable indicates if pg_stat_statements extension is available
	StatStatementsAvailable bool
}

BootstrapResult contains the result of the bootstrap process

func Bootstrap

func Bootstrap(ctx context.Context, conn pg.PoolConn) (*BootstrapResult, error)

Bootstrap creates required extensions for the manager. - dblink: Required for remote database queries - pg_stat_statements: Optional, for query statistics (requires shared_preload_libraries) This should be called once when initializing the manager.

type Connection

type Connection struct {
	Pid         uint32    `json:"pid" help:"Process ID"`
	Database    string    `json:"database" help:"Database"`
	Role        string    `json:"role" help:"Role"`
	Application *string   `json:"application,omitempty" help:"Application"`
	ClientAddr  string    `json:"client_addr,omitempty" help:"Client address"`
	ClientPort  uint16    `json:"client_port,omitempty" help:"Client port"`
	ConnStart   time.Time `json:"conn_start,omitempty" help:"Connection start"`
	QueryStart  time.Time `json:"query_start,omitempty" help:"Query start"`
	Query       string    `json:"query,omitempty" help:"Query"`
	State       string    `json:"state,omitempty" help:"State"`
}

func (*Connection) Scan

func (c *Connection) Scan(row pg.Row) error

func (Connection) String

func (c Connection) String() string

type ConnectionList

type ConnectionList struct {
	Count uint64       `json:"count"`
	Body  []Connection `json:"body,omitempty"`
}

func (*ConnectionList) Scan

func (c *ConnectionList) Scan(row pg.Row) error

func (*ConnectionList) ScanCount

func (c *ConnectionList) ScanCount(row pg.Row) error

func (ConnectionList) String

func (c ConnectionList) String() string

type ConnectionListRequest

type ConnectionListRequest struct {
	pg.OffsetLimit
	Database *string `json:"database,omitempty" help:"Database"`
	Role     *string `json:"role,omitempty" help:"Role"`
	State    *string `json:"state,omitempty" help:"State"`
}

func (ConnectionListRequest) Select

func (c ConnectionListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

func (ConnectionListRequest) String

func (c ConnectionListRequest) String() string

type ConnectionPid

type ConnectionPid uint64

func (ConnectionPid) Select

func (c ConnectionPid) Select(bind *pg.Bind, op pg.Op) (string, error)

type Database

type Database struct {
	Oid uint32 `json:"oid"`
	DatabaseMeta
	Size uint64 `json:"bytes,omitempty" help:"Size of database in bytes"`
}

func (*Database) Scan

func (d *Database) Scan(row pg.Row) error

func (Database) String

func (d Database) String() string

type DatabaseList

type DatabaseList struct {
	Count uint64     `json:"count"`
	Body  []Database `json:"body,omitempty"`
}

func (*DatabaseList) Scan

func (n *DatabaseList) Scan(row pg.Row) error

func (*DatabaseList) ScanCount

func (n *DatabaseList) ScanCount(row pg.Row) error

func (DatabaseList) String

func (d DatabaseList) String() string

type DatabaseListRequest

type DatabaseListRequest struct {
	pg.OffsetLimit
}

func (DatabaseListRequest) Select

func (d DatabaseListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

func (DatabaseListRequest) String

func (d DatabaseListRequest) String() string

type DatabaseMeta

type DatabaseMeta struct {
	Name  string  `json:"name,omitempty" arg:"" help:"Name"`
	Owner string  `json:"owner,omitempty" help:"Owner"`
	Acl   ACLList `json:"acl,omitempty" help:"Access privileges"`
}

func (DatabaseMeta) Insert

func (d DatabaseMeta) Insert(bind *pg.Bind) (string, error)

func (DatabaseMeta) Select

func (d DatabaseMeta) Select(bind *pg.Bind, op pg.Op) (string, error)

func (DatabaseMeta) String

func (d DatabaseMeta) String() string

func (DatabaseMeta) Update

func (d DatabaseMeta) Update(bind *pg.Bind) error

func (DatabaseMeta) Validate

func (d DatabaseMeta) Validate() error

Validate checks the DatabaseMeta for valid name and owner

type DatabaseName

type DatabaseName string

func (DatabaseName) Insert

func (d DatabaseName) Insert(bind *pg.Bind) (string, error)

func (DatabaseName) Select

func (d DatabaseName) Select(bind *pg.Bind, op pg.Op) (string, error)

func (DatabaseName) Update

func (d DatabaseName) Update(bind *pg.Bind) error

type Extension

type Extension struct {
	Oid *uint32 `json:"oid,omitempty"`
	ExtensionMeta
	DefaultVersion   string   `json:"default_version,omitempty"`
	InstalledVersion *string  `json:"installed_version,omitempty"`
	Relocatable      *bool    `json:"relocatable,omitempty"`
	Comment          string   `json:"comment,omitempty"`
	Requires         []string `json:"requires,omitempty"`
}

func (*Extension) Scan

func (e *Extension) Scan(row pg.Row) error

func (Extension) String

func (e Extension) String() string

type ExtensionList

type ExtensionList struct {
	Count uint64      `json:"count"`
	Body  []Extension `json:"body,omitempty"`
}

func (*ExtensionList) Scan

func (e *ExtensionList) Scan(row pg.Row) error

func (*ExtensionList) ScanCount

func (e *ExtensionList) ScanCount(row pg.Row) error

func (ExtensionList) String

func (e ExtensionList) String() string

type ExtensionListRequest

type ExtensionListRequest struct {
	Database  *string `json:"database,omitempty" help:"Database"`
	Installed *bool   `json:"installed,omitempty" help:"Filter by installed status"`
	pg.OffsetLimit
}

func (ExtensionListRequest) Select

func (e ExtensionListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

func (ExtensionListRequest) String

func (e ExtensionListRequest) String() string

type ExtensionMeta

type ExtensionMeta struct {
	Name     string `json:"name,omitempty" arg:"" help:"Extension name"`
	Database string `json:"database,omitempty" help:"Database to install extension into"`
	Schema   string `json:"schema,omitempty" help:"Schema to install extension into"`
	Owner    string `json:"owner,omitempty"`
	Version  string `json:"version,omitempty" help:"Extension version"`
}

func (ExtensionMeta) Insert

func (e ExtensionMeta) Insert(bind *pg.Bind) (string, error)

func (ExtensionMeta) String

func (e ExtensionMeta) String() string

func (ExtensionMeta) Update

func (e ExtensionMeta) Update(bind *pg.Bind) error

func (ExtensionMeta) UpdateQuery

func (e ExtensionMeta) UpdateQuery(bind *pg.Bind) (string, error)

UpdateQuery returns the SQL for updating an extension

type ExtensionName

type ExtensionName string

func (ExtensionName) Select

func (e ExtensionName) Select(bind *pg.Bind, op pg.Op) (string, error)

type Object

type Object struct {
	Oid      uint32 `json:"oid"`
	Database string `json:"database,omitempty" help:"Database"`
	Schema   string `json:"schema,omitempty" help:"Schema"`
	Type     string `json:"type,omitempty" help:"Type"`
	ObjectMeta
	Tablespace *string    `json:"tablespace,omitempty" help:"Tablespace"`
	Size       uint64     `json:"bytes,omitempty" help:"Size of object in bytes"`
	Table      *TableMeta `json:"table,omitempty" help:"Table-specific metadata"`
}

func (*Object) Scan

func (o *Object) Scan(row pg.Row) error

func (Object) String

func (o Object) String() string

type ObjectList

type ObjectList struct {
	Count uint64   `json:"count"`
	Body  []Object `json:"body,omitempty"`
}

func (*ObjectList) Scan

func (o *ObjectList) Scan(row pg.Row) error

func (*ObjectList) ScanCount

func (o *ObjectList) ScanCount(row pg.Row) error

func (ObjectList) String

func (o ObjectList) String() string

type ObjectListRequest

type ObjectListRequest struct {
	Database *string `json:"database,omitempty" help:"Database"`
	Schema   *string `json:"schema,omitempty" help:"Schema"`
	Type     *string `json:"type,omitempty" help:"Object Type"`
	pg.OffsetLimit
}

func (ObjectListRequest) Select

func (o ObjectListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

func (ObjectListRequest) String

func (o ObjectListRequest) String() string

type ObjectMeta

type ObjectMeta struct {
	Name  string  `json:"name,omitempty" arg:"" help:"Name"`
	Owner string  `json:"owner,omitempty" help:"Owner"`
	Acl   ACLList `json:"acl,omitempty" help:"Access privileges"`
}

func (ObjectMeta) String

func (o ObjectMeta) String() string

type ObjectName

type ObjectName struct {
	Schema string `json:"schema,omitempty" help:"Schema"`
	Name   string `json:"name,omitempty" arg:"" help:"Name"`
}

func (ObjectName) Select

func (o ObjectName) Select(bind *pg.Bind, op pg.Op) (string, error)

func (ObjectName) String

func (o ObjectName) String() string

func (ObjectName) Validate

func (o ObjectName) Validate() error

Validate checks that the ObjectName has valid schema and name.

type ReplicationSlot

type ReplicationSlot struct {
	ReplicationSlotMeta

	// Combined status: inactive, streaming, catchup, lost
	Status string `json:"status"`

	// Connected replica info (when streaming/catchup)
	ClientAddr string   `json:"client_addr,omitempty"`
	LagBytes   *int64   `json:"lag_bytes,omitempty"`
	LagMs      *float64 `json:"lag_ms"`
}

ReplicationSlot represents a replication slot with its status

func (*ReplicationSlot) Scan

func (s *ReplicationSlot) Scan(row pg.Row) error

func (ReplicationSlot) String

func (s ReplicationSlot) String() string

type ReplicationSlotList

type ReplicationSlotList struct {
	Count uint64            `json:"count"`
	Body  []ReplicationSlot `json:"body,omitempty"`
}

ReplicationSlotList is a list of replication slots with a total count

func (*ReplicationSlotList) Scan

func (l *ReplicationSlotList) Scan(row pg.Row) error

func (*ReplicationSlotList) ScanCount

func (l *ReplicationSlotList) ScanCount(row pg.Row) error

func (ReplicationSlotList) String

func (l ReplicationSlotList) String() string

type ReplicationSlotListRequest

type ReplicationSlotListRequest struct {
	pg.OffsetLimit
}

ReplicationSlotListRequest contains parameters for listing replication slots

func (ReplicationSlotListRequest) Select

func (r ReplicationSlotListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

type ReplicationSlotMeta

type ReplicationSlotMeta struct {
	Name      string `json:"name"`
	Type      string `json:"type"`               // physical, logical
	Plugin    string `json:"plugin,omitempty"`   // required for logical (e.g., pgoutput)
	Database  string `json:"database,omitempty"` // required for logical
	Temporary bool   `json:"temporary,omitempty"`
	TwoPhase  bool   `json:"two_phase,omitempty"` // PG14+
}

ReplicationSlotMeta contains parameters for creating a replication slot

func (ReplicationSlotMeta) Insert

func (m ReplicationSlotMeta) Insert(bind *pg.Bind) (string, error)

func (ReplicationSlotMeta) String

func (s ReplicationSlotMeta) String() string

func (ReplicationSlotMeta) Update

func (m ReplicationSlotMeta) Update(_ *pg.Bind) error

func (ReplicationSlotMeta) Validate

func (m ReplicationSlotMeta) Validate() error

type ReplicationSlotName

type ReplicationSlotName string

ReplicationSlotName is used for get/delete operations

func (ReplicationSlotName) Select

func (n ReplicationSlotName) Select(bind *pg.Bind, op pg.Op) (string, error)

type Role

type Role struct {
	Oid uint32 `json:"oid"`
	RoleMeta
}

func (*Role) Scan

func (r *Role) Scan(row pg.Row) error

func (Role) String

func (r Role) String() string

type RoleList

type RoleList struct {
	Count uint64 `json:"count"`
	Body  []Role `json:"body,omitempty"`
}

func (*RoleList) Scan

func (n *RoleList) Scan(row pg.Row) error

func (*RoleList) ScanCount

func (n *RoleList) ScanCount(row pg.Row) error

func (RoleList) String

func (r RoleList) String() string

type RoleListRequest

type RoleListRequest struct {
	pg.OffsetLimit
}

func (RoleListRequest) Select

func (r RoleListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

func (RoleListRequest) String

func (r RoleListRequest) String() string

type RoleMeta

type RoleMeta struct {
	Name                   string     `json:"name,omitempty" arg:"" help:"Role name"`
	Superuser              *bool      `json:"super,omitempty" help:"Superuser permission"`
	Inherit                *bool      `json:"inherit,omitempty" help:"Inherit permissions"`
	CreateRoles            *bool      `json:"createrole,omitempty" help:"Create roles permission"`
	CreateDatabases        *bool      `json:"createdb,omitempty" help:"Create databases permission"`
	Replication            *bool      `json:"replication,omitempty" help:"Replication permission"`
	ConnectionLimit        *uint64    `json:"conlimit,omitempty" help:"Connection limit"`
	BypassRowLevelSecurity *bool      `json:"bypassrls,omitempty" help:"Bypass row-level security"`
	Login                  *bool      `json:"login,omitempty" help:"Login permission"`
	Password               *string    `json:"password,omitempty" help:"Password"`
	Expires                *time.Time `json:"expires,omitzero" help:"Password expiration"`
	Groups                 []string   `json:"memberof,omitempty" help:"Group memberships"`
}

func (RoleMeta) Insert

func (r RoleMeta) Insert(bind *pg.Bind) (string, error)

func (RoleMeta) Select

func (r RoleMeta) Select(bind *pg.Bind, op pg.Op) (string, error)

func (RoleMeta) String

func (r RoleMeta) String() string

func (RoleMeta) Update

func (r RoleMeta) Update(bind *pg.Bind) error

func (RoleMeta) Validate

func (r RoleMeta) Validate() error

Validate checks that the RoleMeta has valid values. Returns an error if the name is empty, has a reserved prefix, or is not a valid identifier.

type RoleName

type RoleName string

func (RoleName) Insert

func (r RoleName) Insert(bind *pg.Bind) (string, error)

func (RoleName) Select

func (r RoleName) Select(bind *pg.Bind, op pg.Op) (string, error)

func (RoleName) Update

func (r RoleName) Update(bind *pg.Bind) error

type Schema

type Schema struct {
	Oid      uint32 `json:"oid"`
	Database string `json:"database,omitempty" help:"Database"`
	SchemaMeta
	Size uint64 `json:"bytes,omitempty" help:"Size of schema in bytes"`
}

func (*Schema) Scan

func (s *Schema) Scan(row pg.Row) error

func (Schema) String

func (s Schema) String() string

type SchemaList

type SchemaList struct {
	Count uint64   `json:"count"`
	Body  []Schema `json:"body,omitempty"`
}

func (*SchemaList) Scan

func (s *SchemaList) Scan(row pg.Row) error

func (*SchemaList) ScanCount

func (s *SchemaList) ScanCount(row pg.Row) error

func (SchemaList) String

func (s SchemaList) String() string

type SchemaListRequest

type SchemaListRequest struct {
	Database *string `json:"database,omitempty" help:"Database"`
	pg.OffsetLimit
}

func (SchemaListRequest) Select

func (d SchemaListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

func (SchemaListRequest) String

func (s SchemaListRequest) String() string

type SchemaMeta

type SchemaMeta struct {
	Name  string  `json:"name,omitempty" arg:"" help:"Name"`
	Owner string  `json:"owner,omitempty" help:"Owner"`
	Acl   ACLList `json:"acl,omitempty" help:"Access privileges"`
}

func (SchemaMeta) Insert

func (s SchemaMeta) Insert(bind *pg.Bind) (string, error)

func (SchemaMeta) Select

func (s SchemaMeta) Select(bind *pg.Bind, op pg.Op) (string, error)

func (SchemaMeta) String

func (s SchemaMeta) String() string

func (SchemaMeta) Update

func (s SchemaMeta) Update(bind *pg.Bind) error

type SchemaName

type SchemaName string

func (SchemaName) Insert

func (d SchemaName) Insert(bind *pg.Bind) (string, error)

func (SchemaName) Select

func (s SchemaName) Select(bind *pg.Bind, op pg.Op) (string, error)

func (SchemaName) Update

func (d SchemaName) Update(bind *pg.Bind) error

type Setting

type Setting struct {
	Name string `json:"name"`
	SettingMeta
	Unit        *string `json:"unit,omitempty"`
	Category    string  `json:"category"`
	Context     string  `json:"context"` // internal, postmaster, sighup, superuser, user
	Description string  `json:"description,omitempty"`
	ExtraDesc   string  `json:"extra_desc,omitempty"`
}

Setting represents a PostgreSQL server setting

func (*Setting) Scan

func (s *Setting) Scan(row pg.Row) error

func (Setting) String

func (s Setting) String() string

type SettingCategoryList

type SettingCategoryList struct {
	Count uint64   `json:"count"`
	Body  []string `json:"body,omitempty"`
}

SettingCategoryList contains the list of setting categories

func (*SettingCategoryList) Scan

func (l *SettingCategoryList) Scan(row pg.Row) error

func (*SettingCategoryList) ScanCount

func (l *SettingCategoryList) ScanCount(row pg.Row) error

func (SettingCategoryList) String

func (s SettingCategoryList) String() string

type SettingCategoryListRequest

type SettingCategoryListRequest struct{}

SettingCategoryListRequest is used to retrieve distinct setting categories

func (SettingCategoryListRequest) Select

func (r SettingCategoryListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

type SettingList

type SettingList struct {
	Count uint64    `json:"count"`
	Body  []Setting `json:"body,omitempty"`
}

SettingList contains the list of settings

func (*SettingList) Scan

func (l *SettingList) Scan(row pg.Row) error

func (*SettingList) ScanCount

func (l *SettingList) ScanCount(row pg.Row) error

func (SettingList) String

func (s SettingList) String() string

type SettingListRequest

type SettingListRequest struct {
	pg.OffsetLimit
	Category *string `json:"category,omitempty" help:"Filter by category"`
}

SettingListRequest is used to retrieve server settings

func (SettingListRequest) Select

func (r SettingListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

type SettingMeta

type SettingMeta struct {
	Value *string `json:"value"`
}

SettingMeta represents the mutable parts of a setting

func (SettingMeta) Insert

func (m SettingMeta) Insert(_ *pg.Bind) (string, error)

Insert is not supported for settings - they cannot be created, only updated.

func (SettingMeta) Update

func (m SettingMeta) Update(bind *pg.Bind) error

type SettingName

type SettingName string

SettingName is a setting name identifier

func (SettingName) Select

func (n SettingName) Select(bind *pg.Bind, op pg.Op) (string, error)

type Statement

type Statement struct {
	Role     string  `json:"role,omitempty"`     // Name of the role who executed the statement
	Database string  `json:"database,omitempty"` // Name of the database in which the statement was executed
	QueryID  int64   `json:"query_id"`           // Hash code to identify identical normalized queries
	Query    string  `json:"query"`              // Text of a representative statement
	Calls    int64   `json:"calls"`              // Number of times the statement was executed
	Rows     int64   `json:"rows"`               // Total number of rows retrieved or affected by the statement
	Total    float64 `json:"total_ms"`           // Total time spent executing the statement, in milliseconds
	Min      float64 `json:"min_ms"`             // Minimum time spent executing the statement, in milliseconds
	Max      float64 `json:"max_ms"`             // Maximum time spent executing the statement, in milliseconds
	Mean     float64 `json:"mean_ms"`            // Mean time spent executing the statement, in milliseconds
}

Statement represents a row from pg_stat_statements

func (*Statement) Scan

func (s *Statement) Scan(row pg.Row) error

func (Statement) String

func (s Statement) String() string

type StatementList

type StatementList struct {
	Count uint64      `json:"count"`
	Body  []Statement `json:"body"`
}

StatementList is a list of statements with a total count

func (*StatementList) Scan

func (l *StatementList) Scan(row pg.Row) error

func (*StatementList) ScanCount

func (l *StatementList) ScanCount(row pg.Row) error

func (StatementList) String

func (l StatementList) String() string

type StatementListRequest

type StatementListRequest struct {
	pg.OffsetLimit

	// Filter by database name
	Database *string `json:"database,omitempty"`

	// Filter by role name
	Role *string `json:"role,omitempty"`

	// Sort by field (calls, rows, total_ms, min_ms, max_ms, mean_ms)
	// All sort DESC except min_ms which sorts ASC
	Sort string `json:"sort,omitempty"`
}

StatementListRequest contains parameters for listing statements

func (StatementListRequest) Select

func (r StatementListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

type TableMeta

type TableMeta struct {
	LiveTuples *int64 `json:"live_tuples,omitempty" help:"Number of live tuples"`
	DeadTuples *int64 `json:"dead_tuples,omitempty" help:"Number of dead tuples"`
}

TableMeta contains metadata specific to tables

func (TableMeta) String

func (t TableMeta) String() string

type Tablespace

type Tablespace struct {
	Oid uint32 `json:"oid"`
	TablespaceMeta
	Location string   `json:"location,omitempty" help:"Location"`
	Options  []string `json:"options,omitempty" help:"Options"`
	Size     uint64   `json:"bytes,omitempty" help:"Size of schema in bytes"`
}

func (*Tablespace) Scan

func (t *Tablespace) Scan(row pg.Row) error

func (Tablespace) String

func (t Tablespace) String() string

type TablespaceList

type TablespaceList struct {
	Count uint64       `json:"count"`
	Body  []Tablespace `json:"body,omitempty"`
}

func (*TablespaceList) Scan

func (t *TablespaceList) Scan(row pg.Row) error

func (*TablespaceList) ScanCount

func (t *TablespaceList) ScanCount(row pg.Row) error

func (TablespaceList) String

func (t TablespaceList) String() string

type TablespaceListRequest

type TablespaceListRequest struct {
	pg.OffsetLimit
}

func (TablespaceListRequest) Select

func (t TablespaceListRequest) Select(bind *pg.Bind, op pg.Op) (string, error)

func (TablespaceListRequest) String

func (t TablespaceListRequest) String() string

type TablespaceMeta

type TablespaceMeta struct {
	Name  string  `json:"name,omitempty" arg:"" help:"Name"`
	Owner string  `json:"owner,omitempty" help:"Owner"`
	Acl   ACLList `json:"acl,omitempty" help:"Access privileges"`
}

func (TablespaceMeta) Insert

func (t TablespaceMeta) Insert(bind *pg.Bind) (string, error)

func (TablespaceMeta) Select

func (t TablespaceMeta) Select(bind *pg.Bind, op pg.Op) (string, error)

func (TablespaceMeta) String

func (t TablespaceMeta) String() string

func (TablespaceMeta) Update

func (t TablespaceMeta) Update(bind *pg.Bind) error

type TablespaceName

type TablespaceName string

func (TablespaceName) Insert

func (t TablespaceName) Insert(bind *pg.Bind) (string, error)

func (TablespaceName) Select

func (t TablespaceName) Select(bind *pg.Bind, op pg.Op) (string, error)

func (TablespaceName) Update

func (t TablespaceName) Update(bind *pg.Bind) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL