postgres

package
v0.0.0-...-56c3f64 Latest Latest
Warning

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

Go to latest
Published: Apr 15, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

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"`
	IsDatabaseExistSQLTemplate     = `SELECT 1 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"`
	DropExtensionSQLTemplate       = `DROP EXTENSION IF EXISTS "%s" %s`
	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 table_name FROM information_schema.tables WHERE table_schema = '%s'`
	ChangeTableOwnerSQLTemplate    = `ALTER TABLE IF EXISTS "%s" OWNER TO "%s"`
	DuplicateDatabaseErrorCode     = "42P04"
)
View Source
const (
	CreateGroupRoleSQLTemplate             = `CREATE ROLE "%s"`
	CreateUserRoleSQLTemplate              = `CREATE ROLE "%s" WITH LOGIN PASSWORD '%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"`
	// Source: https://dba.stackexchange.com/questions/136858/postgresql-display-role-members
	GetRoleMembershipSQLTemplate = `` /* 187-byte string literal not displayed */
	// 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

This section is empty.

Functions

func CloseAllSavedPoolsForName

func CloseAllSavedPoolsForName(name string) error

func CloseDatabaseSavedPoolsForName

func CloseDatabaseSavedPoolsForName(name, database string) error

func TemplatePostgresqlURL

func TemplatePostgresqlURL(host, user, password, database string, port int) string

func TemplatePostgresqlURLWithArgs

func TemplatePostgresqlURLWithArgs(host, user, password, uriArgs, database string, port int) string

Types

type PG

type PG interface {
	CreateDB(dbname, username string) error
	ChangeDBOwner(dbname, owner string) error
	IsDatabaseExist(dbname string) (bool, error)
	RenameDatabase(oldname, newname string) error
	CreateSchema(db, role, schema string) error
	CreateExtension(db, extension string) error
	CreateGroupRole(role string) error
	CreateUserRole(role, password string) (string, error)
	IsRoleExist(role string) (bool, error)
	RenameRole(oldname, newname string) error
	UpdatePassword(role, password string) error
	GrantRole(role, grantee string, withAdminOption bool) error
	SetSchemaPrivileges(db, creator, role, schema, privs string) error
	RevokeRole(role, userRole string) error
	AlterDefaultLoginRole(role, setRole string) error
	AlterDefaultLoginRoleOnDatabase(role, setRole, database string) error
	RevokeUserSetRoleOnDatabase(role, database string) error
	DoesRoleHaveActiveSession(role string) (bool, error)
	DropDatabase(db string) error
	DropRoleAndDropAndChangeOwnedBy(role, newOwner, database string) error
	ChangeAndDropOwnedBy(role, newOwner, database string) error
	GetSetRoleOnDatabasesRoleSettings(role string) ([]*SetRoleOnDatabaseRoleSetting, error)
	DropRole(role string) error
	DropSchema(database, schema string, cascade bool) error
	DropExtension(database, extension string, cascade bool) error
	GetRoleMembership(role string) ([]string, error)
	GetTablesInSchema(db, schema string) ([]string, error)
	ChangeTableOwner(db, table, owner string) error
	GetUser() string
	GetHost() string
	GetPort() int
	GetDefaultDatabase() string
	GetArgs() string
	Ping() error
}

func NewPG

func NewPG(
	name,
	host,
	user,
	password,
	args,
	defaultDatabase string,
	port int,
	cloudType v1alpha1.ProviderType,
	logger logr.Logger,
) PG

type SetRoleOnDatabaseRoleSetting

type SetRoleOnDatabaseRoleSetting struct {
	Role     string
	Database string
}

Jump to

Keyboard shortcuts

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