Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultReplicationSlotName(dbName string) string
- func DiscoverAllSchemaTables(ctx context.Context, conn Querier, schema string) ([]string, error)
- func DiscoverAllSchemas(ctx context.Context, conn Querier) ([]string, error)
- func IsQuotedIdentifier(s string) bool
- func IsValidReplicationSlotName(name string) error
- func MapError(err error) error
- func ParseConfig(pgurl string) (*pgx.ConnConfig, error)
- func QuoteIdentifier(s string) string
- func QuoteQualifiedIdentifier(schema, table string) string
- func RunPGDump(_ context.Context, opts PGDumpOptions) ([]byte, error)
- func RunPGDumpAll(_ context.Context, opts PGDumpAllOptions) ([]byte, error)
- func RunPGRestore(ctx context.Context, opts PGRestoreOptions, dump []byte) (string, error)
- type CommandTag
- type Conn
- func (c *Conn) Close(ctx context.Context) error
- func (c *Conn) CopyFrom(ctx context.Context, tableName string, columnNames []string, srcRows [][]any) (int64, error)
- func (c *Conn) Exec(ctx context.Context, query string, args ...any) (CommandTag, error)
- func (c *Conn) ExecInTx(ctx context.Context, fn func(Tx) error) error
- func (c *Conn) ExecInTxWithOptions(ctx context.Context, fn func(Tx) error, opts TxOptions) error
- func (c *Conn) Ping(ctx context.Context) error
- func (c *Conn) Query(ctx context.Context, query string, args ...any) (Rows, error)
- func (c *Conn) QueryRow(ctx context.Context, dest []any, query string, args ...any) error
- type ErrConstraintViolation
- type ErrDataException
- type ErrPermissionDenied
- type ErrPreconditionFailed
- type ErrRelationAlreadyExists
- type ErrRelationDoesNotExist
- type ErrRuleViolation
- type ErrSyntaxError
- type Error
- type IdentifySystemResult
- type Mapper
- type PGDumpAllFn
- type PGDumpAllOptions
- type PGDumpFn
- type PGDumpOptions
- type PGRestoreErrors
- type PGRestoreFn
- type PGRestoreOptions
- type Pool
- func (c *Pool) Close(_ context.Context) error
- func (c *Pool) CopyFrom(ctx context.Context, tableName string, columnNames []string, srcRows [][]any) (int64, error)
- func (c *Pool) Exec(ctx context.Context, query string, args ...any) (CommandTag, error)
- func (c *Pool) ExecInTx(ctx context.Context, fn func(Tx) error) error
- func (c *Pool) ExecInTxWithOptions(ctx context.Context, fn func(Tx) error, opts TxOptions) error
- func (c *Pool) Ping(ctx context.Context) error
- func (c *Pool) Query(ctx context.Context, query string, args ...any) (Rows, error)
- func (c *Pool) QueryRow(ctx context.Context, dest []any, query string, args ...any) error
- type PoolOption
- type QualifiedName
- type Querier
- type QuerierBuilder
- type ReplicationConfig
- type ReplicationConn
- func (c *ReplicationConn) Close(ctx context.Context) error
- func (c *ReplicationConn) IdentifySystem(ctx context.Context) (IdentifySystemResult, error)
- func (c *ReplicationConn) ReceiveMessage(ctx context.Context) (*ReplicationMessage, error)
- func (c *ReplicationConn) SendStandbyStatusUpdate(ctx context.Context, lsn uint64) error
- func (c *ReplicationConn) StartReplication(ctx context.Context, cfg ReplicationConfig) error
- type ReplicationMessage
- type ReplicationQuerier
- type Row
- type Rows
- type SchemaTableMap
- type Tx
- type TxAccessMode
- type TxIsolationLevel
- type TxOptions
- type Txn
- func (t *Txn) CopyFrom(ctx context.Context, tableName string, columnNames []string, srcRows [][]any) (int64, error)
- func (t *Txn) Exec(ctx context.Context, query string, args ...any) (CommandTag, error)
- func (t *Txn) Query(ctx context.Context, query string, args ...any) (Rows, error)
- func (t *Txn) QueryRow(ctx context.Context, dest []any, query string, args ...any) error
Constants ¶
const DiscoverAllSchemaTablesQuery = "SELECT tablename FROM pg_tables WHERE schemaname=$1"
const DiscoverAllSchemasQuery = "SELECT nspname FROM pg_catalog.pg_namespace WHERE nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast', 'pgstream')"
const (
PublicSchema = "public"
)
Variables ¶
var ( ErrConnTimeout = errors.New("connection timeout") ErrNoRows = errors.New("no rows") )
var ErrInvalidTableName = errors.New("invalid table name format")
var ErrUnsupportedCopyDataMessage = errors.New("unsupported copy data message")
Functions ¶
func DefaultReplicationSlotName ¶ added in v0.3.0
func DiscoverAllSchemaTables ¶ added in v0.8.0
func DiscoverAllSchemas ¶ added in v0.8.0
func IsQuotedIdentifier ¶ added in v0.7.6
func IsValidReplicationSlotName ¶ added in v0.9.3
IsValidReplicationSlotName checks if the provided replication slot name is valid. Replication slot names may only contain lower case letters, numbers, and the underscore character.
func ParseConfig ¶ added in v0.8.4
func ParseConfig(pgurl string) (*pgx.ConnConfig, error)
func QuoteIdentifier ¶ added in v0.5.0
func QuoteQualifiedIdentifier ¶ added in v0.5.0
func RunPGDump ¶ added in v0.4.0
func RunPGDump(_ context.Context, opts PGDumpOptions) ([]byte, error)
Func RunPGDump runs pg_dump command with the given options and returns the result.
func RunPGDumpAll ¶ added in v0.7.9
func RunPGDumpAll(_ context.Context, opts PGDumpAllOptions) ([]byte, error)
Func RunPGDumpAll runs pg_dumpall command with the given options and returns the result.
func RunPGRestore ¶ added in v0.4.0
Func RunPGRestore runs pg_restore command with the given options and returns the result.
Types ¶
type CommandTag ¶
type CommandTag struct {
pgconn.CommandTag
}
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
func (*Conn) ExecInTxWithOptions ¶ added in v0.3.0
type ErrConstraintViolation ¶ added in v0.4.0
type ErrConstraintViolation struct {
Details string
}
func (*ErrConstraintViolation) Error ¶ added in v0.4.0
func (e *ErrConstraintViolation) Error() string
type ErrDataException ¶ added in v0.4.1
type ErrDataException struct {
Details string
}
func (*ErrDataException) Error ¶ added in v0.4.1
func (e *ErrDataException) Error() string
type ErrPermissionDenied ¶ added in v0.8.4
type ErrPermissionDenied struct {
Details string
}
func (*ErrPermissionDenied) Error ¶ added in v0.8.4
func (e *ErrPermissionDenied) Error() string
type ErrPreconditionFailed ¶ added in v0.9.1
type ErrPreconditionFailed struct {
Details string
}
func (*ErrPreconditionFailed) Error ¶ added in v0.9.1
func (e *ErrPreconditionFailed) Error() string
type ErrRelationAlreadyExists ¶ added in v0.5.0
type ErrRelationAlreadyExists struct {
Details string
}
func (*ErrRelationAlreadyExists) Error ¶ added in v0.5.0
func (e *ErrRelationAlreadyExists) Error() string
type ErrRelationDoesNotExist ¶ added in v0.4.0
type ErrRelationDoesNotExist struct {
Details string
}
func (*ErrRelationDoesNotExist) Error ¶ added in v0.4.0
func (e *ErrRelationDoesNotExist) Error() string
type ErrRuleViolation ¶ added in v0.9.0
type ErrRuleViolation struct {
Details string
}
func (*ErrRuleViolation) Error ¶ added in v0.9.0
func (e *ErrRuleViolation) Error() string
type ErrSyntaxError ¶ added in v0.4.0
type ErrSyntaxError struct {
Details string
}
func (*ErrSyntaxError) Error ¶ added in v0.4.0
func (e *ErrSyntaxError) Error() string
type IdentifySystemResult ¶
type IdentifySystemResult pglogrepl.IdentifySystemResult
type Mapper ¶ added in v0.3.0
type Mapper struct {
// contains filtered or unexported fields
}
Mapper provides PostgreSQL type information mapping from OIDs to type names. It uses a combination of the pgx type map for standard types and a custom cache for user-defined types, querying the database when necessary.
func NewMapper ¶ added in v0.3.0
NewMapper creates a new Mapper instance with the given database querier. The mapper is initialized with the standard pgx type map and an empty custom type cache.
func (*Mapper) TypeForOID ¶ added in v0.3.0
TypeForOID returns the PostgreSQL type name for the given OID. It first checks the standard pgx type map, then the custom type cache, and finally queries the database if the type is not found in either cache. Note: This method may acquire a database connection if the type is not cached.
type PGDumpAllFn ¶ added in v0.7.9
type PGDumpAllFn func(context.Context, PGDumpAllOptions) ([]byte, error)
type PGDumpAllOptions ¶ added in v0.7.9
type PGDumpAllOptions struct {
// ConnectionString
ConnectionString string
// RolesOnly if true, only roles will be exported (no schema)
RolesOnly bool
// Clean if true, the target database will be cleaned before the dump is restored
Clean bool
// NoPasswords if true, no role passwords will be included in the dump
NoPasswords bool
// Role specifies the role to be used for the dump
Role string
// Do not output commands to set ownership of objects to match the original database
NoOwner bool
// Do not dump privileges (grant/revoke)
NoPrivileges bool
// Options to pass to pg_dumpall
Options []string
}
func (*PGDumpAllOptions) ToArgs ¶ added in v0.7.9
func (opts *PGDumpAllOptions) ToArgs() []string
type PGDumpOptions ¶ added in v0.4.0
type PGDumpOptions struct {
// ConnectionString
ConnectionString string
// Format (c custom, d directory, t tar, p plain text)
Format string
// Schemas to export
Schemas []string
// Schemas to be excluded from the dump, regex patterns supported
ExcludeSchemas []string
// Tables to export
Tables []string
// Tables to be excluded from the dump, regex patterns supported
ExcludeTables []string
// SchemaOnly if true, only schema will be exported (no data)
SchemaOnly bool
// DataOnly if true, only data will be exported (no schema)
DataOnly bool
// Do not dump privileges (grant/revoke)
NoPrivileges bool
// Do not output commands to set ownership of objects to match the original database
NoOwner bool
// Clean all the objects that will be dumped
Clean bool
// Create the database
Create bool
// Specifies a role name to be used to create the dump
Role string
// Options to pass to pg_dump
Options []string
}
func (*PGDumpOptions) ToArgs ¶ added in v0.4.0
func (opts *PGDumpOptions) ToArgs() []string
type PGRestoreErrors ¶ added in v0.5.0
type PGRestoreErrors struct {
// contains filtered or unexported fields
}
func NewPGRestoreErrors ¶ added in v0.5.0
func NewPGRestoreErrors(errs ...error) *PGRestoreErrors
func (PGRestoreErrors) Error ¶ added in v0.5.0
func (e PGRestoreErrors) Error() string
func (*PGRestoreErrors) GetIgnoredErrors ¶ added in v0.5.0
func (e *PGRestoreErrors) GetIgnoredErrors() []error
func (*PGRestoreErrors) HasCriticalErrors ¶ added in v0.5.0
func (e *PGRestoreErrors) HasCriticalErrors() bool
func (PGRestoreErrors) HasErrors ¶ added in v0.8.4
func (e PGRestoreErrors) HasErrors() bool
type PGRestoreFn ¶ added in v0.6.0
type PGRestoreOptions ¶ added in v0.4.0
type PGRestoreOptions struct {
// ConnectionString
ConnectionString string
// SchemaOnly if true, only schema will be restored (no data)
SchemaOnly bool
// Clean all the objects that will be restored
Clean bool
// Create target database
Create bool
// Format (c custom, d directory, t tar, p plain text)
Format string
// Options to pass to pg_restore
Options []string
}
type Pool ¶
func NewConnPool ¶
func (*Pool) ExecInTxWithOptions ¶ added in v0.3.0
type PoolOption ¶ added in v0.8.8
func WithMaxConnections ¶ added in v0.8.8
func WithMaxConnections(maxConns int32) PoolOption
type QualifiedName ¶ added in v0.6.2
type QualifiedName struct {
// contains filtered or unexported fields
}
func NewQualifiedName ¶ added in v0.6.2
func NewQualifiedName(s string) (*QualifiedName, error)
func (*QualifiedName) Name ¶ added in v0.6.2
func (qn *QualifiedName) Name() string
func (*QualifiedName) Schema ¶ added in v0.6.2
func (qn *QualifiedName) Schema() string
func (*QualifiedName) String ¶ added in v0.7.5
func (qn *QualifiedName) String() string
type Querier ¶
type Querier interface {
Query(ctx context.Context, query string, args ...any) (Rows, error)
QueryRow(ctx context.Context, dest []any, query string, args ...any) error
Exec(ctx context.Context, query string, args ...any) (CommandTag, error)
ExecInTx(ctx context.Context, fn func(tx Tx) error) error
ExecInTxWithOptions(ctx context.Context, fn func(tx Tx) error, txOpts TxOptions) error
CopyFrom(ctx context.Context, tableName string, columnNames []string, srcRows [][]any) (int64, error)
Ping(ctx context.Context) error
Close(ctx context.Context) error
}
func ConnBuilder ¶ added in v0.4.1
type QuerierBuilder ¶ added in v0.4.1
type ReplicationConfig ¶
type ReplicationConn ¶
type ReplicationConn struct {
// contains filtered or unexported fields
}
func NewReplicationConn ¶
func NewReplicationConn(ctx context.Context, url string) (*ReplicationConn, error)
func (*ReplicationConn) IdentifySystem ¶
func (c *ReplicationConn) IdentifySystem(ctx context.Context) (IdentifySystemResult, error)
func (*ReplicationConn) ReceiveMessage ¶
func (c *ReplicationConn) ReceiveMessage(ctx context.Context) (*ReplicationMessage, error)
func (*ReplicationConn) SendStandbyStatusUpdate ¶
func (c *ReplicationConn) SendStandbyStatusUpdate(ctx context.Context, lsn uint64) error
func (*ReplicationConn) StartReplication ¶
func (c *ReplicationConn) StartReplication(ctx context.Context, cfg ReplicationConfig) error
type ReplicationMessage ¶
type ReplicationQuerier ¶ added in v0.8.8
type ReplicationQuerier interface {
IdentifySystem(ctx context.Context) (IdentifySystemResult, error)
StartReplication(ctx context.Context, cfg ReplicationConfig) error
SendStandbyStatusUpdate(ctx context.Context, lsn uint64) error
ReceiveMessage(ctx context.Context) (*ReplicationMessage, error)
Close(ctx context.Context) error
}
type SchemaTableMap ¶ added in v0.7.8
func NewSchemaTableMap ¶ added in v0.7.8
func NewSchemaTableMap(tables []string) (SchemaTableMap, error)
func (SchemaTableMap) Add ¶ added in v0.7.8
func (t SchemaTableMap) Add(table string) error
func (SchemaTableMap) ContainsSchemaTable ¶ added in v0.7.8
func (t SchemaTableMap) ContainsSchemaTable(schema, table string) bool
func (SchemaTableMap) GetSchemaTables ¶ added in v0.7.8
func (t SchemaTableMap) GetSchemaTables(schema string) map[string]struct{}
type Tx ¶ added in v0.3.0
type Tx interface {
Query(ctx context.Context, query string, args ...any) (Rows, error)
QueryRow(ctx context.Context, dest []any, query string, args ...any) error
Exec(ctx context.Context, query string, args ...any) (CommandTag, error)
CopyFrom(ctx context.Context, tableName string, columnNames []string, srcRows [][]any) (int64, error)
}
type TxAccessMode ¶ added in v0.3.0
type TxAccessMode string
const ( ReadWrite TxAccessMode = "read write" ReadOnly TxAccessMode = "read only" )
type TxIsolationLevel ¶ added in v0.3.0
type TxIsolationLevel string
const ( Serializable TxIsolationLevel = "serializable" RepeatableRead TxIsolationLevel = "repeatable read" ReadCommitted TxIsolationLevel = "read committed" ReadUncommitted TxIsolationLevel = "read uncommitted" )
type TxOptions ¶ added in v0.3.0
type TxOptions struct {
IsolationLevel TxIsolationLevel
AccessMode TxAccessMode
}