dbx

package
v0.0.0-...-0941746 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2024 License: AGPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Exec

func Exec(ctx context.Context, db Queryer, query string, args ...any) (sql.Result, error)

Exec executes a query without returning any rows. The args are for any placeholder parameters in the query.

func Get

func Get[T any](ctx context.Context, db Queryer, query string, args ...any) (result T, err error)

Get single result or return an error.

func Query

func Query(ctx context.Context, db Queryer, query string, args ...any) (*sql.Rows, error)

Query executes a query that returns rows, typically a SELECT. The args are for any placeholder parameters in the query.

func Select

func Select[T any](ctx context.Context, db Queryer, query string, args ...any) (results []T, err error)

Select creates slice of results based on SQL query. In case of zero results it will return non-nil empty slice.

Types

type Database

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

Database is wrapper of `sqlx.DB` which implements `DB`

func Connect

func Connect(databaseURL string, poolSize int) (ret *Database, err error)

Connect to a database and verify the connections with a ping. See https://www.alexedwards.net/blog/configuring-sqldb and https://making.pusher.com/production-ready-connection-pooling-in-go https://brandur.org/fragments/postgres-parameters for the details

func (*Database) Begin

func (db *Database) Begin(ctx context.Context) (*Tx, error)

Begin starts a transaction. The default isolation level is dependent on the driver. The provided context is used until the transaction is committed or rolled back. If the context is canceled, the sql package will roll back the transaction. Tx.Commit will return an error if the context provided to BeginTx is canceled.

func (*Database) BeginTx

func (db *Database) BeginTx(ctx context.Context, opts *sql.TxOptions) (*Tx, error)

BeginTx starts a transaction.

The provided context is used until the transaction is committed or rolled back. If the context is canceled, the sql package will roll back the transaction. Tx.Commit will return an error if the context provided to BeginTx is canceled.

The provided TxOptions is optional and may be nil if defaults should be used. If a non-default isolation level is used that the driver doesn't support, an error will be returned.

func (*Database) ExecContext

func (db *Database) ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)

Exec executes a query without returning any rows. The args are for any placeholder parameters in the query.

func (*Database) GetContext

func (db *Database) GetContext(ctx context.Context, dest any, query string, args ...any) error

Get a single record. Any placeholder parameters are replaced with supplied args. An `ErrNoRows` error is returned if the result set is empty.

func (*Database) Ping

func (db *Database) Ping(ctx context.Context) error

Ping verifies a connection to the database is still alive, establishing a connection if necessary.

func (*Database) QueryContext

func (db *Database) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)

QueryContext executes a query that returns rows, typically a SELECT. The args are for any placeholder parameters in the query.

func (*Database) QueryRowxContext

func (db *Database) QueryRowxContext(ctx context.Context, query string, args ...any) *sqlx.Row

func (*Database) QueryxContext

func (db *Database) QueryxContext(ctx context.Context, query string, args ...any) (*sqlx.Rows, error)

func (*Database) Select

func (db *Database) Select(ctx context.Context, dest any, query string, args ...any) error

Select an array of records. Any placeholder parameters are replaced with supplied args.

func (*Database) SetConnMaxLifetime

func (db *Database) SetConnMaxLifetime(d time.Duration)

SetConnMaxLifetime sets the maximum amount of time a connection may be reused.

func (*Database) SetMaxIdleConns

func (db *Database) SetMaxIdleConns(n int)

SetMaxIdleConns sets the maximum number of connections in the idle connection pool.

func (*Database) SetMaxOpenConns

func (db *Database) SetMaxOpenConns(n int)

SetMaxOpenConns sets the maximum number of open connections to the database.

func (*Database) Stats

func (db *Database) Stats() sql.DBStats

Stats returns database statistics.

type Queryer

type Queryer interface {
	sqlx.QueryerContext
	sqlx.ExecerContext
}

type Tx

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

Transaction is wrapper of `sqlx.Tx` which implements `Tx`

func (*Tx) Commit

func (tx *Tx) Commit() error

Commit commits the transaction.

func (*Tx) ExecContext

func (tx *Tx) ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)

Exec executes a query without returning any rows. The args are for any placeholder parameters in the query.

func (*Tx) GetContext

func (tx *Tx) GetContext(ctx context.Context, dest any, query string, args ...any) error

Get a single record. Any placeholder parameters are replaced with supplied args. An `ErrNoRows` error is returned if the result set is empty.

func (*Tx) QueryContext

func (tx *Tx) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)

QueryContext executes a query that returns rows, typically a SELECT. The args are for any placeholder parameters in the query.

func (*Tx) QueryRowxContext

func (tx *Tx) QueryRowxContext(ctx context.Context, query string, args ...any) *sqlx.Row

func (*Tx) QueryxContext

func (tx *Tx) QueryxContext(ctx context.Context, query string, args ...any) (*sqlx.Rows, error)

func (*Tx) Rollback

func (tx *Tx) Rollback() error

Rollback aborts the transaction.

func (*Tx) Select

func (tx *Tx) Select(ctx context.Context, dest any, query string, args ...any) error

Select an array of records. Any placeholder parameters are replaced with supplied args.

Jump to

Keyboard shortcuts

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