Documentation
¶
Index ¶
- Constants
- func DefaultGUCs() map[string]any
- func DefaultTunableGUCs(memBytes uint64, cpus float64, clusterSize int) map[string]any
- func IsSpockNodeNotConfigured(err error) bool
- func ReplicationSlotName(databaseName, providerName, subscriberName string) string
- func SnowflakeLolorGUCs(nodeOrdinal int) (map[string]any, error)
- func Spock4DefaultGUCs() map[string]any
- type BuiltinRoleOptions
- type ConditionalStatement
- func CreateDatabase(name string) ConditionalStatement
- func CreateReplicationSlot(databaseName, providerNode, subscriberNode string) ConditionalStatement
- func CreateSubscription(providerName, subscriberName string, providerDSN *DSN, disabled bool, ...) ConditionalStatement
- func DropReplicationSlot(databaseName, providerNode, subscriberNode string) ConditionalStatement
- func EnableSubscription(providerNode, subscriberNode string, disabled bool) ConditionalStatement
- func RenameDB(oldName, newName string) ConditionalStatement
- func TerminateReplicationSlot(databaseName, providerNode, subscriberNode string) ConditionalStatement
- type DSN
- type Executor
- type IStatement
- type Query
- func CurrentReplicationSlotLSN(databaseName, providerNode, subscriberNode string) Query[string]
- func GetPostgresVersion() Query[string]
- func GetReplicationSetTables() Query[ReplicationSetTable]
- func GetReplicationSets() Query[ReplicationSet]
- func GetReplicationSlotLSNFromCommitTS(databaseName, providerNode, subscriberNode string, commitTS time.Time) Query[string]
- func GetSpockReadOnly() Query[string]
- func GetSpockVersion() Query[string]
- func GetSubscriptionStatus(providerNode, subscriberNode string) Query[string]
- func GetSubscriptionStatuses() Query[SubscriptionStatus]
- func IsReplicationSlotActive(databaseName, providerNode, subscriberNode string) Query[bool]
- func IsSpockEnabled() Query[bool]
- func LagTrackerCommitTimestamp(originNode, receiverNode string) Query[time.Time]
- func ReplicationSlotNeedsCreate(databaseName, providerNode, subscriberNode string) Query[bool]
- func SubscriptionDsnNeedsUpdate(providerName, subscriberName string, providerDSN *DSN) Query[bool]
- func SubscriptionNeedsCreate(providerName, subscriberName string) Query[bool]
- func SubscriptionNeedsEnable(providerName, subscriberName string, disabled bool) Query[bool]
- func SyncEvent() Query[string]
- func WaitForSyncEvent(originNode, lsn string, timeoutSeconds int) Query[bool]
- type ReplicationSet
- type ReplicationSetTable
- type Statement
- func AddReplicationSetTable(setName string, relOID uint32, columns []string, rowFilter string, sync bool, ...) Statement
- func AdvanceReplicationSlotToLSN(databaseName, providerNode, subscriberNode string, targetLSN string) Statement
- func CreateReplicationSet(r ReplicationSet) Statement
- func DropAllSubscriptions() Statement
- func DropSubscription(providerName, subscriberName string) Statement
- func EnableRepairMode() Statement
- func TerminateOtherConnections(dbName string) Statement
- type Statements
- func CreateApplicationReadOnlyRole(opts BuiltinRoleOptions) Statements
- func CreateApplicationRole(opts BuiltinRoleOptions) Statements
- func CreateBuiltInRoles(opts BuiltinRoleOptions) (Statements, error)
- func CreatePgEdgeSuperuserRole(opts BuiltinRoleOptions) (Statements, error)
- func CreateUserRole(opts UserRoleOptions) (Statements, error)
- func DropSpockAndCleanupSlots(dbName string) Statements
- func InitializePgEdgeExtensions(nodeName string, dsn *DSN) Statements
- func RestoreReplicationSets(sets []ReplicationSet, tabs []ReplicationSetTable) Statements
- type SubscriptionStatus
- type UserRoleOptions
Constants ¶
const ( SubStatusInitializing = "initializing" // Worker running, sync in progress SubStatusReplicating = "replicating" // Worker running, sync ready SubStatusUnknown = "unknown" // Worker running, no sync status record SubStatusDisabled = "disabled" // Worker not running, subscription disabled SubStatusDown = "down" // Worker not running, subscription enabled )
Spock subscription statuses returned by spock.sub_show_status(). See: https://github.com/pgEdge/spock/blob/main/src/spock_functions.c
Variables ¶
This section is empty.
Functions ¶
func DefaultGUCs ¶
func DefaultTunableGUCs ¶
func IsSpockNodeNotConfigured ¶ added in v0.7.0
IsSpockNodeNotConfigured reports whether err is a PostgreSQL error indicating that the current database has not been initialized as a spock node (SQLSTATE 55000 — object_not_in_prerequisite_state, as raised by spock.sync_event and related functions when spock.node_create has not been called or the node has been dropped via spock.node_drop).
Source: https://github.com/pgEdge/spock/blob/main/src/spock_functions.c PostgreSQL SQLSTATE reference: https://www.postgresql.org/docs/current/errcodes-appendix.html
func ReplicationSlotName ¶
func Spock4DefaultGUCs ¶
Types ¶
type BuiltinRoleOptions ¶
func (BuiltinRoleOptions) Schemas ¶
func (o BuiltinRoleOptions) Schemas() []string
type ConditionalStatement ¶
type ConditionalStatement struct {
If Query[bool]
Then IStatement
Else IStatement
}
func CreateDatabase ¶
func CreateDatabase(name string) ConditionalStatement
func CreateReplicationSlot ¶
func CreateReplicationSlot(databaseName, providerNode, subscriberNode string) ConditionalStatement
func CreateSubscription ¶
func DropReplicationSlot ¶ added in v0.7.0
func DropReplicationSlot(databaseName, providerNode, subscriberNode string) ConditionalStatement
func EnableSubscription ¶
func EnableSubscription(providerNode, subscriberNode string, disabled bool) ConditionalStatement
func RenameDB ¶
func RenameDB(oldName, newName string) ConditionalStatement
func TerminateReplicationSlot ¶ added in v0.7.0
func TerminateReplicationSlot(databaseName, providerNode, subscriberNode string) ConditionalStatement
TerminateReplicationSlot terminates the walsender process using a replication slot, if one is active. This must be called before dropping a slot whose subscriber has gone down, since pg_drop_replication_slot fails on active slots.
type DSN ¶
type Query ¶
func GetPostgresVersion ¶
func GetReplicationSetTables ¶
func GetReplicationSetTables() Query[ReplicationSetTable]
func GetReplicationSets ¶
func GetReplicationSets() Query[ReplicationSet]
func GetSpockReadOnly ¶
func GetSpockVersion ¶
func GetSubscriptionStatus ¶ added in v0.7.0
GetSubscriptionStatus returns the current status of a specific subscription
func GetSubscriptionStatuses ¶
func GetSubscriptionStatuses() Query[SubscriptionStatus]
func IsReplicationSlotActive ¶ added in v0.7.0
IsReplicationSlotActive checks if a replication slot is currently being used by an active walsender process. Uses EXISTS to always return exactly one row.
func IsSpockEnabled ¶
func SubscriptionNeedsCreate ¶
func SubscriptionNeedsEnable ¶
func WaitForSyncEvent ¶
type ReplicationSet ¶
type ReplicationSetTable ¶
type Statement ¶
func AddReplicationSetTable ¶
func AddReplicationSetTable( setName string, relOID uint32, columns []string, rowFilter string, sync bool, includePartitions bool, ) Statement
https://docs.pgedge.com/spock_ext/spock_functions/functions/spock_repset_add_table
func CreateReplicationSet ¶
func CreateReplicationSet(r ReplicationSet) Statement
https://docs.pgedge.com/spock_ext/spock_functions/functions/spock_repset_create
func DropAllSubscriptions ¶
func DropAllSubscriptions() Statement
func DropSubscription ¶
func EnableRepairMode ¶
func EnableRepairMode() Statement
type Statements ¶
type Statements []IStatement
func CreateApplicationReadOnlyRole ¶
func CreateApplicationReadOnlyRole(opts BuiltinRoleOptions) Statements
func CreateApplicationRole ¶
func CreateApplicationRole(opts BuiltinRoleOptions) Statements
func CreateBuiltInRoles ¶
func CreateBuiltInRoles(opts BuiltinRoleOptions) (Statements, error)
func CreatePgEdgeSuperuserRole ¶
func CreatePgEdgeSuperuserRole(opts BuiltinRoleOptions) (Statements, error)
func CreateUserRole ¶
func CreateUserRole(opts UserRoleOptions) (Statements, error)
func DropSpockAndCleanupSlots ¶
func DropSpockAndCleanupSlots(dbName string) Statements
func InitializePgEdgeExtensions ¶
func InitializePgEdgeExtensions(nodeName string, dsn *DSN) Statements
func RestoreReplicationSets ¶
func RestoreReplicationSets(sets []ReplicationSet, tabs []ReplicationSetTable) Statements
type SubscriptionStatus ¶
type SubscriptionStatus struct {
SubscriptionName string `json:"subscription_name"`
Status string `json:"status"`
ProviderNode string `json:"provider_node"`
ProviderDSN string `json:"provider_dsn"`
SlotName string `json:"slot_name"`
ReplicationSets []string `json:"replication_sets"`
ForwardOrigins []string `json:"forward_origins"`
}