postgres

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2025 License: Apache-2.0 Imports: 41 Imported by: 2

Documentation

Index

Constants

View Source
const (
	Persistence driver2.PersistenceType = "postgres"
)

Variables

Functions

func NewBytePrimaryKey added in v0.7.0

func NewBytePrimaryKey(name driver.ColumnKey) *primaryKey

func NewConditionInterpreter

func NewConditionInterpreter() *interpreter

func NewKeyValueStore

func NewKeyValueStore(dbs *common3.RWDB, tables common4.TableNames) (*common4.KeyValueStore, error)

func NewNamedDriver

func NewNamedDriver(config driver.Config, dbProvider DbProvider) driver.NamedDriver

func NewPaginationInterpreter

func NewPaginationInterpreter() common.PagInterpreter

func NewPersistenceWithOpts

func NewPersistenceWithOpts[V common3.DBObject](cfg *ConfigProvider, dbProvider DbProvider, name driver.PersistenceName, constructor common2.PersistenceConstructor[V], params ...string) (V, error)

func NewSanitizer

func NewSanitizer() *stringSanitizer

func NewSimplePrimaryKey

func NewSimplePrimaryKey(name driver.ColumnKey) *primaryKey

func Open

func Open(opts Opts) (*common.RWDB, error)

func StartPostgres

func StartPostgres(ctx context.Context, c *ContainerConfig, logger Logger) (func(), string, error)

StartPostgres spawns a Postgres container with the given ContainerConfig and Logger. It returns a function to terminate and cleanup the spawned Postgres container, a datasource string that allows to connect to the database. If an error occurs, the closeF is nil and the datasource string is empty.

func WithContainerImage added in v0.7.0

func WithContainerImage(name string) option

WithContainerImage sets the Postgres dbname.

func WithContainerName added in v0.7.0

func WithContainerName(name string) option

WithContainerName sets the Postgres dbname.

func WithDBName added in v0.7.0

func WithDBName(name string) option

WithDBName sets the Postgres dbname.

func WithHost added in v0.7.0

func WithHost(host string) option

WithHost sets the Postgres port.

func WithPassword added in v0.7.0

func WithPassword(pw string) option

WithPassword sets the Postgres port.

func WithPort added in v0.7.0

func WithPort(port string) option

WithPort sets the Postgres port.

func WithUser added in v0.7.0

func WithUser(user string) option

WithUser sets the Postgres port.

Types

type AuditInfoStore

type AuditInfoStore struct {
	*common3.AuditInfoStore
}

func NewAuditInfoStore

func NewAuditInfoStore(dbs *common2.RWDB, tables common3.TableNames) (*AuditInfoStore, error)

type BindingStore

type BindingStore struct {
	*common3.BindingStore
	// contains filtered or unexported fields
}

func NewBindingStore

func NewBindingStore(dbs *common2.RWDB, tables common3.TableNames) (*BindingStore, error)

type Config

type Config struct {
	TablePrefix     string
	DataSource      string
	MaxOpenConns    int
	MaxIdleConns    *int
	MaxIdleTime     *time.Duration
	SkipCreateTable bool
	TableNameParams []string
	Tracing         *common2.TracingConfig
}

type ConfigProvider

type ConfigProvider struct {
	// contains filtered or unexported fields
}

func NewConfigProvider

func NewConfigProvider(config config) *ConfigProvider

func (*ConfigProvider) GetOpts

func (r *ConfigProvider) GetOpts(name driver.PersistenceName, params ...string) (*Config, error)

type ContainerConfig

type ContainerConfig struct {
	Image     string
	Container string
	*DbConfig
}

ContainerConfig contains the configuration data about a postgres container.

func ConfigFromDataSource added in v0.7.0

func ConfigFromDataSource(s string) (*ContainerConfig, error)

ConfigFromDataSource returns a Postgres container configuration based on a given postgres connection string.

func ConfigFromEnv added in v0.7.0

func ConfigFromEnv() *ContainerConfig

ConfigFromEnv returns a Postgres container configuration based environment variables.

func DefaultConfig

func DefaultConfig(opts ...option) *ContainerConfig

DefaultConfig returns a Postgres container configuration. The configuration entries can be set via option parameters.

type DbConfig

type DbConfig struct {
	DBName string
	User   string
	Pass   string
	Host   string
	Port   string
}

DbConfig contains the configuration data about a postgres database.

func (*DbConfig) DataSource

func (c *DbConfig) DataSource() string

DataSource returns the contents of the DbConfig as data source string.

type DbProvider

type DbProvider interface {
	Get(Opts) (*common.RWDB, error)
}

func NewDbProvider

func NewDbProvider() DbProvider

type Driver

type Driver struct {
	// contains filtered or unexported fields
}

func NewDriver

func NewDriver(config driver.Config) *Driver

func NewDriverWithDbProvider

func NewDriverWithDbProvider(config driver.Config, dbProvider DbProvider) *Driver

func (*Driver) NewAuditInfo

func (d *Driver) NewAuditInfo(name driver.PersistenceName, params ...string) (driver.AuditInfoStore, error)

func (*Driver) NewBinding

func (d *Driver) NewBinding(name driver.PersistenceName, params ...string) (driver.BindingStore, error)

func (*Driver) NewKVS

func (d *Driver) NewKVS(name driver.PersistenceName, params ...string) (driver.KeyValueStore, error)

func (*Driver) NewSignerInfo

func (d *Driver) NewSignerInfo(name driver.PersistenceName, params ...string) (driver.SignerInfoStore, error)

type ErrorMapper

type ErrorMapper struct{}

func (*ErrorMapper) WrapError

func (m *ErrorMapper) WrapError(err error) error

type KeyValueStoreNotifier

type KeyValueStoreNotifier struct {
	*common4.KeyValueStore
	*Notifier
}

func (*KeyValueStoreNotifier) Close added in v0.7.0

func (db *KeyValueStoreNotifier) Close() error

func (*KeyValueStoreNotifier) CreateSchema

func (db *KeyValueStoreNotifier) CreateSchema() error

type Logger

type Logger interface {
	Debugf(format string, args ...any)
	Errorf(format string, args ...any)
}

type Notifier deprecated

type Notifier struct {
	// contains filtered or unexported fields
}

Notifier implements a simple subscription API to listen for updates on a database table.

Deprecated: Notifier exists to track notification on tokens stored in postgres in the Token SDK. The Token SDK is the only user of this, thus, the code may be migrated. Notifier should not be used anymore.

func NewNotifier

func NewNotifier(writeDB *sql.DB, table, dataSource string, notifyOperations []driver.Operation, primaryKeys ...primaryKey) *Notifier

func (*Notifier) Close added in v0.7.0

func (db *Notifier) Close() error

func (*Notifier) CreateSchema

func (db *Notifier) CreateSchema() error

func (*Notifier) GetSchema

func (db *Notifier) GetSchema() string

func (*Notifier) Subscribe

func (db *Notifier) Subscribe(callback driver.TriggerCallback) error

func (*Notifier) UnsubscribeAll

func (db *Notifier) UnsubscribeAll() error

type Opts

type Opts struct {
	DataSource      string
	MaxOpenConns    int
	MaxIdleConns    int
	MaxIdleTime     time.Duration
	TablePrefix     string
	TableNameParams []string
	Tracing         *common2.TracingConfig
}

type SignerInfoStore

type SignerInfoStore struct {
	*common3.SignerInfoStore
}

func NewSignerInfoStore

func NewSignerInfoStore(dbs *common2.RWDB, tables common3.TableNames) (*SignerInfoStore, error)

Jump to

Keyboard shortcuts

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