database

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2023 License: Apache-2.0 Imports: 11 Imported by: 2

Documentation

Overview

Package database provides a high-level relational database interface with schema migration, connection pooling, prepared statement, and embedded query support, wrapping around zombiezen.com/go/sqlite's CGo-free sqlite interface

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExecuteDelete

func ExecuteDelete(conn *sqlite.Conn, query string, namedParams map[string]interface{}) error

func ExecuteInsertion

func ExecuteInsertion(conn *sqlite.Conn, query string, namedParams map[string]interface{}) error

func ExecuteInsertionForID added in v0.3.0

func ExecuteInsertionForID(
	conn *sqlite.Conn, query string, namedParams map[string]interface{},
) (rowID int64, err error)

func ExecuteSelection

func ExecuteSelection(
	conn *sqlite.Conn, query string, namedParams map[string]interface{},
	resultFunc func(s *sqlite.Stmt) error,
) error

func ExecuteUpdate

func ExecuteUpdate(conn *sqlite.Conn, query string, namedParams map[string]interface{}) error

Types

type Config

type Config struct {
	URI           string
	Flags         sqlite.OpenFlags
	WritePoolSize int
	ReadPoolSize  int
}

func GetConfig

func GetConfig() (c Config, err error)

type DB

type DB struct {
	Config Config
	// contains filtered or unexported fields
}

func NewDB

func NewDB(c Config, opts ...DBOption) (db *DB)

func (*DB) AcquireReader

func (db *DB) AcquireReader(ctx context.Context) (*sqlite.Conn, error)

func (*DB) AcquireWriter

func (db *DB) AcquireWriter(ctx context.Context) (*sqlite.Conn, error)

func (*DB) Close

func (db *DB) Close() error

func (*DB) ExecuteDelete

func (db *DB) ExecuteDelete(
	ctx context.Context, query string, namedParams map[string]interface{},
) error

func (*DB) ExecuteInsertion

func (db *DB) ExecuteInsertion(
	ctx context.Context, query string, namedParams map[string]interface{},
) error

func (*DB) ExecuteInsertionForID added in v0.3.0

func (db *DB) ExecuteInsertionForID(
	ctx context.Context, query string, namedParams map[string]interface{},
) (rowID int64, err error)

func (*DB) ExecuteSelection

func (db *DB) ExecuteSelection(
	ctx context.Context, query string, namedParams map[string]interface{},
	resultFunc func(s *sqlite.Stmt) error,
) error

func (*DB) ExecuteUpdate

func (db *DB) ExecuteUpdate(
	ctx context.Context, query string, namedParams map[string]interface{},
) error

func (*DB) Migrate

func (db *DB) Migrate(ctx context.Context, schema sqlitemigration.Schema) error

func (*DB) Open

func (db *DB) Open() (err error)

func (*DB) ReleaseReader

func (db *DB) ReleaseReader(conn *sqlite.Conn)

func (*DB) ReleaseWriter

func (db *DB) ReleaseWriter(conn *sqlite.Conn)

type DBOption

type DBOption func(*DB)

func WithPrepareConnQueries

func WithPrepareConnQueries(queries fs.FS) DBOption

type DomainEmbeds

type DomainEmbeds struct {
	MigrationsFS fs.FS
}

type Embeds

type Embeds struct {
	AppID int32

	DomainEmbeds   map[string]DomainEmbeds
	MigrationFiles []MigrationFile

	PrepareConnQueriesFS fs.FS
}

func (Embeds) NewSchema

func (e Embeds) NewSchema() (sqlitemigration.Schema, error)

func (Embeds) ReadDownMigrations

func (e Embeds) ReadDownMigrations() (migrations []string, err error)

func (Embeds) ReadUpMigrations

func (e Embeds) ReadUpMigrations() (migrations []string, err error)

type MigrationFile

type MigrationFile struct {
	Domain string
	File   string
}

Jump to

Keyboard shortcuts

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