Documentation
¶
Index ¶
- Constants
- Variables
- func CloseAllSavedPoolsForName(name string) error
- func CloseDatabaseSavedPoolsForName(name, database string) error
- func TemplatePostgresqlURL(host, user, password, database string, port int) string
- func TemplatePostgresqlURLWithArgs(host, user, password, uriArgs, database string, port int) string
- type CreatePublicationBuilder
- func (b *CreatePublicationBuilder) AddTable(name string, columns *[]string, additionalWhere *string) *CreatePublicationBuilder
- func (b *CreatePublicationBuilder) Build()
- func (b *CreatePublicationBuilder) SetForAllTables() *CreatePublicationBuilder
- func (b *CreatePublicationBuilder) SetName(n string) *CreatePublicationBuilder
- func (b *CreatePublicationBuilder) SetOwner(n string) *CreatePublicationBuilder
- func (b *CreatePublicationBuilder) SetTablesInSchema(schemaList []string) *CreatePublicationBuilder
- func (b *CreatePublicationBuilder) SetWith(publish string, publishViaPartitionRoot *bool) *CreatePublicationBuilder
- type PG
- type PublicationResult
- type PublicationTableDetail
- type ReplicationSlotResult
- type RoleAttributes
- type SetRoleOnDatabaseRoleSetting
- type TableOwnership
- type TypeOwnership
- type UpdatePublicationBuilder
- func (b *UpdatePublicationBuilder) AddSetTable(name string, columns *[]string, additionalWhere *string) *UpdatePublicationBuilder
- func (b *UpdatePublicationBuilder) Build()
- func (b *UpdatePublicationBuilder) RenameTo(newName string) *UpdatePublicationBuilder
- func (b *UpdatePublicationBuilder) SetDefaultWith() *UpdatePublicationBuilder
- func (b *UpdatePublicationBuilder) SetTablesInSchema(schemaList []string) *UpdatePublicationBuilder
- func (b *UpdatePublicationBuilder) SetWith(publish string, publishViaPartitionRoot *bool) *UpdatePublicationBuilder
Constants ¶
View Source
const ( CreateDBWithoutOwnerSQLTemplate = `CREATE DATABASE "%s"` AlterDBOwnerSQLTemplate = `ALTER DATABASE "%s" OWNER TO "%s"` )
View Source
const ( CascadeKeyword = "CASCADE" RestrictKeyword = "RESTRICT" CreateDBSQLTemplate = `CREATE DATABASE "%s" WITH OWNER = "%s"` ChangeDBOwnerSQLTemplate = `ALTER DATABASE "%s" OWNER TO "%s"` GetDatabaseOwnerSQLTemplate = `SELECT pg_catalog.pg_get_userbyid(datdba) as owner FROM pg_database WHERE datname='%s'` RenameDatabaseSQLTemplate = `ALTER DATABASE "%s" RENAME TO "%s"` CreateSchemaSQLTemplate = `CREATE SCHEMA IF NOT EXISTS "%s" AUTHORIZATION "%s"` CreateExtensionSQLTemplate = `CREATE EXTENSION IF NOT EXISTS "%s"` DropDatabaseSQLTemplate = `DROP DATABASE "%s"` GetExtensionListSQLTemplate = `SELECT extname FROM pg_extension;` DropExtensionSQLTemplate = `DROP EXTENSION IF EXISTS "%s" %s` GetSchemaListSQLTemplate = `SELECT schema_name FROM information_schema.schemata` DropSchemaSQLTemplate = `DROP SCHEMA IF EXISTS "%s" %s` GrantUsageSchemaSQLTemplate = `GRANT USAGE ON SCHEMA "%s" TO "%s"` GrantAllTablesSQLTemplate = `GRANT %s ON ALL TABLES IN SCHEMA "%s" TO "%s"` DefaultPrivsSchemaSQLTemplate = `ALTER DEFAULT PRIVILEGES FOR ROLE "%s" IN SCHEMA "%s" GRANT %s ON TABLES TO "%s"` GetTablesFromSchemaSQLTemplate = `SELECT tablename,tableowner FROM pg_tables WHERE schemaname = '%s'` ChangeTableOwnerSQLTemplate = `ALTER TABLE IF EXISTS "%s" OWNER TO "%s"` ChangeTypeOwnerSQLTemplate = `ALTER TYPE "%s"."%s" OWNER TO "%s"` GetColumnsFromTableSQLTemplate = `SELECT column_name FROM information_schema.columns WHERE table_schema = '%s' AND table_name = '%s'` // Got and edited from : https://stackoverflow.com/questions/3660787/how-to-list-custom-types-using-postgres-information-schema GetTypesFromSchemaSQLTemplate = `` /* 404-byte string literal not displayed */ DuplicateDatabaseErrorCode = "42P04" )
View Source
const ( CreatePublicationSQLTemplate = `CREATE PUBLICATION "%s" %s %s` DropPublicationSQLTemplate = `DROP PUBLICATION "%s"` AlterPublicationRenameSQLTemplate = `ALTER PUBLICATION "%s" RENAME TO "%s"` AlterPublicationChangeOwnerSQLTemplate = `ALTER PUBLICATION "%s" OWNER TO "%s"` AlterPublicationGeneralOperationSQLTemplate = `ALTER PUBLICATION "%s" SET %s` GetPublicationSQLTemplate = `` /* 170-byte string literal not displayed */ GetPublicationTablesSQLTemplate = `SELECT schemaname, tablename, attnames, rowfilter FROM pg_publication_tables WHERE pubname = '%s'` GetReplicationSlotSQLTemplate = `SELECT slot_name,plugin,database FROM pg_replication_slots WHERE slot_name = '%s'` CreateReplicationSlotSQLTemplate = `SELECT pg_create_logical_replication_slot('%s', '%s')` DropReplicationSlotSQLTemplate = `SELECT pg_drop_replication_slot('%s')` )
View Source
const ( CreateGroupRoleSQLTemplate = `CREATE ROLE "%s"` CreateUserRoleSQLTemplate = `CREATE ROLE "%s" WITH LOGIN PASSWORD '%s' %s` GrantRoleSQLTemplate = `GRANT "%s" TO "%s"` GrantRoleWithAdminOptionSQLTemplate = `GRANT "%s" TO "%s" WITH ADMIN OPTION` AlterUserSetRoleSQLTemplate = `ALTER USER "%s" SET ROLE "%s"` AlterUserSetRoleOnDatabaseSQLTemplate = `ALTER ROLE "%s" IN DATABASE "%s" SET ROLE "%s"` RevokeUserSetRoleOnDatabaseSQLTemplate = `ALTER ROLE "%s" IN DATABASE "%s" RESET role` RevokeRoleSQLTemplate = `REVOKE "%s" FROM "%s"` UpdatePasswordSQLTemplate = `ALTER ROLE "%s" WITH PASSWORD '%s'` // #nosec DropRoleSQLTemplate = `DROP ROLE "%s"` DropOwnedBySQLTemplate = `DROP OWNED BY "%s"` ReassignObjectsSQLTemplate = `REASSIGN OWNED BY "%s" TO "%s"` IsRoleExistSQLTemplate = `SELECT 1 FROM pg_roles WHERE rolname='%s'` RenameRoleSQLTemplate = `ALTER ROLE "%s" RENAME TO "%s"` AlterRoleWithOptionSQLTemplate = `ALTER ROLE "%s" WITH %s` // Source: https://dba.stackexchange.com/questions/136858/postgresql-display-role-members GetRoleMembershipSQLTemplate = `` /* 187-byte string literal not displayed */ GetRoleAttributesSQLTemplate = `select rolconnlimit, rolreplication, rolbypassrls FROM pg_roles WHERE rolname = '%s'` // DO NOT TOUCH THIS // Cannot filter on compute value so... cf line before. GetRoleSettingsSQLTemplate = `` //nolint:lll//Because /* 370-byte string literal not displayed */ DoesRoleHaveActiveSessionSQLTemplate = `SELECT 1 from pg_stat_activity WHERE usename = '%s' group by usename` DuplicateRoleErrorCode = "42710" RoleNotFoundErrorCode = "42704" InvalidGrantOperationErrorCode = "0LP01" )
View Source
const MaxIdentifierLength = 63
View Source
const MinUserSplit = 1
Variables ¶
View Source
var ( DefaultAttributeConnectionLimit = -1 DefaultAttributeReplication = false DefaultAttributeBypassRLS = false )
Functions ¶
func TemplatePostgresqlURL ¶
Types ¶
type CreatePublicationBuilder ¶
type CreatePublicationBuilder struct {
// contains filtered or unexported fields
}
func NewCreatePublicationBuilder ¶
func NewCreatePublicationBuilder() *CreatePublicationBuilder
func (*CreatePublicationBuilder) AddTable ¶
func (b *CreatePublicationBuilder) AddTable(name string, columns *[]string, additionalWhere *string) *CreatePublicationBuilder
func (*CreatePublicationBuilder) Build ¶
func (b *CreatePublicationBuilder) Build()
func (*CreatePublicationBuilder) SetForAllTables ¶
func (b *CreatePublicationBuilder) SetForAllTables() *CreatePublicationBuilder
func (*CreatePublicationBuilder) SetName ¶
func (b *CreatePublicationBuilder) SetName(n string) *CreatePublicationBuilder
func (*CreatePublicationBuilder) SetOwner ¶
func (b *CreatePublicationBuilder) SetOwner(n string) *CreatePublicationBuilder
func (*CreatePublicationBuilder) SetTablesInSchema ¶
func (b *CreatePublicationBuilder) SetTablesInSchema(schemaList []string) *CreatePublicationBuilder
func (*CreatePublicationBuilder) SetWith ¶
func (b *CreatePublicationBuilder) SetWith(publish string, publishViaPartitionRoot *bool) *CreatePublicationBuilder
type PG ¶
type PG interface {
CreateDB(ctx context.Context, dbname, username string) error
GetDatabaseOwner(ctx context.Context, dbname string) (string, error)
ChangeDBOwner(ctx context.Context, dbname, owner string) error
IsDatabaseExist(ctx context.Context, dbname string) (bool, error)
RenameDatabase(ctx context.Context, oldname, newname string) error
CreateSchema(ctx context.Context, db, role, schema string) error
CreateExtension(ctx context.Context, db, extension string) error
CreateGroupRole(ctx context.Context, role string) error
CreateUserRole(ctx context.Context, role, password string, attributes *RoleAttributes) (string, error)
AlterRoleAttributes(ctx context.Context, role string, attributes *RoleAttributes) error
GetRoleAttributes(ctx context.Context, role string) (*RoleAttributes, error)
IsRoleExist(ctx context.Context, role string) (bool, error)
RenameRole(ctx context.Context, oldname, newname string) error
UpdatePassword(ctx context.Context, role, password string) error
GrantRole(ctx context.Context, role, grantee string, withAdminOption bool) error
SetSchemaPrivileges(ctx context.Context, db, creator, role, schema, privs string) error
RevokeRole(ctx context.Context, role, userRole string) error
AlterDefaultLoginRole(ctx context.Context, role, setRole string) error
AlterDefaultLoginRoleOnDatabase(ctx context.Context, role, setRole, database string) error
RevokeUserSetRoleOnDatabase(ctx context.Context, role, database string) error
DoesRoleHaveActiveSession(ctx context.Context, role string) (bool, error)
DropDatabase(ctx context.Context, db string) error
DropRoleAndDropAndChangeOwnedBy(ctx context.Context, role, newOwner, database string) error
ChangeAndDropOwnedBy(ctx context.Context, role, newOwner, database string) error
GetSetRoleOnDatabasesRoleSettings(ctx context.Context, role string) ([]*SetRoleOnDatabaseRoleSetting, error)
DropRole(ctx context.Context, role string) error
DropSchema(ctx context.Context, database, schema string, cascade bool) error
ListSchema(ctx context.Context, database string) ([]string, error)
ListExtensions(ctx context.Context, database string) ([]string, error)
DropExtension(ctx context.Context, database, extension string, cascade bool) error
GetRoleMembership(ctx context.Context, role string) ([]string, error)
GetTablesInSchema(ctx context.Context, db, schema string) ([]*TableOwnership, error)
ChangeTableOwner(ctx context.Context, db, table, owner string) error
GetTypesInSchema(ctx context.Context, db, schema string) ([]*TypeOwnership, error)
ChangeTypeOwnerInSchema(ctx context.Context, db, schema, typeName, owner string) error
DropPublication(ctx context.Context, dbname, name string) error
RenamePublication(ctx context.Context, dbname, oldname, newname string) error
GetPublication(ctx context.Context, dbname, name string) (*PublicationResult, error)
CreatePublication(ctx context.Context, dbname string, builder *CreatePublicationBuilder) error
UpdatePublication(ctx context.Context, dbname, publicationName string, builder *UpdatePublicationBuilder) error
ChangePublicationOwner(ctx context.Context, dbname string, publicationName string, owner string) error
GetPublicationTablesDetails(ctx context.Context, db, publicationName string) ([]*PublicationTableDetail, error)
DropReplicationSlot(ctx context.Context, name string) error
CreateReplicationSlot(ctx context.Context, dbname, name, plugin string) error
GetReplicationSlot(ctx context.Context, name string) (*ReplicationSlotResult, error)
GetColumnNamesFromTable(ctx context.Context, database string, schemaName string, tableName string) ([]string, error)
GetUser() string
GetHost() string
GetPort() int
GetDefaultDatabase() string
GetArgs() string
Ping(ctx context.Context) error
}
type PublicationResult ¶
type PublicationTableDetail ¶
type ReplicationSlotResult ¶
type RoleAttributes ¶
type TableOwnership ¶
type TypeOwnership ¶
type UpdatePublicationBuilder ¶
type UpdatePublicationBuilder struct {
// contains filtered or unexported fields
}
func NewUpdatePublicationBuilder ¶
func NewUpdatePublicationBuilder() *UpdatePublicationBuilder
func (*UpdatePublicationBuilder) AddSetTable ¶
func (b *UpdatePublicationBuilder) AddSetTable(name string, columns *[]string, additionalWhere *string) *UpdatePublicationBuilder
func (*UpdatePublicationBuilder) Build ¶
func (b *UpdatePublicationBuilder) Build()
func (*UpdatePublicationBuilder) RenameTo ¶
func (b *UpdatePublicationBuilder) RenameTo(newName string) *UpdatePublicationBuilder
func (*UpdatePublicationBuilder) SetDefaultWith ¶
func (b *UpdatePublicationBuilder) SetDefaultWith() *UpdatePublicationBuilder
func (*UpdatePublicationBuilder) SetTablesInSchema ¶
func (b *UpdatePublicationBuilder) SetTablesInSchema(schemaList []string) *UpdatePublicationBuilder
func (*UpdatePublicationBuilder) SetWith ¶
func (b *UpdatePublicationBuilder) SetWith(publish string, publishViaPartitionRoot *bool) *UpdatePublicationBuilder
Click to show internal directories.
Click to hide internal directories.