Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNoConnection is returned if pooled connection is not available. ErrNoConnection = errors.New("database: no free connection") // ErrNotFound is returned if requested record is not found. // TODO(dshulyak) is an alias to datatabase.ErrNotFound until full transition is implemented. ErrNotFound = database.ErrNotFound // ErrObjectExists is returned if database contraints didn't allow to insert an object. ErrObjectExists = errors.New("database: object exists") )
Functions ¶
This section is empty.
Types ¶
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
Database is an instance of sqlite database.
func Open ¶
Open database with options.
Database is opened in WAL mode and pragma synchronous=normal. https://sqlite.org/wal.html https://www.sqlite.org/pragma.html#pragma_synchronous
func (*Database) Exec ¶
Exec statement using one of the connection from the pool.
If you care about atomicity of the operation (for example writing rewards to multiple accounts) Tx should be used. Otherwise sqlite will not guarantee that all side-effects of operations are applied to the database if machine crashes.
Note that Exec will block until datatabase is closed or statement has finished. If application needs to control statement execution lifetime use one of the transaction.
type Encoder ¶
type Encoder func(*Statement)
Encoder for parameters. Both positional parameters: select block from blocks where id = ?1;
and named parameters are supported: select blocks from blocks where id = @id;
For complete information see https://www.sqlite.org/c3ref/bind_blob.html.
type Migrations ¶
Migrations is interface for migrations provider.
type Opt ¶
type Opt func(c *conf)
Opt for configuring database.
func WithConnections ¶
WithConnections overwrites number of pooled connections.
func WithMigrations ¶
func WithMigrations(migrations Migrations) Opt
WithMigrations overwrites embedded migrations.