types

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DatabaseConn

type DatabaseConn interface {
	// Close closes the database connection. It returns any error encountered during the closing operation.
	Close(*armadacontext.Context) error

	// Ping pings the database to check the connection. It returns any error encountered during the ping operation.
	Ping(*armadacontext.Context) error

	// Exec executes a query that doesn't return rows. It returns any error encountered.
	Exec(*armadacontext.Context, string, ...any) (any, error)

	// Query executes a query that returns multiple rows. It returns a DatabaseRows interface that allows you to iterate over the result set, and any error encountered.
	Query(*armadacontext.Context, string, ...any) (DatabaseRows, error)

	// QueryRow executes a query that returns one row. It returns a DatabaseRow interface representing the result row, and any error encountered.
	QueryRow(*armadacontext.Context, string, ...any) DatabaseRow

	// BeginTx starts a transcation with the given DatabaseTxOptions, or returns an error if any occurred.
	BeginTx(*armadacontext.Context, DatabaseTxOptions) (DatabaseTx, error)

	// BeginTxFunc starts a transaction and executes the given function within the transaction. It the function runs successfully, BeginTxFunc commits the transaction, otherwise it rolls back and return an errorr.
	BeginTxFunc(*armadacontext.Context, DatabaseTxOptions, func(DatabaseTx) error) error
}

DatabaseConn represents a connection handler interface that provides methods for managing the open connection, executing queries, and starting transactions.

type DatabaseConnection

type DatabaseConnection interface {
	Open() (*sql.DB, error)
	GetConfig() configuration.DatabaseConfig
}

type DatabasePool

type DatabasePool interface {
	// Acquire acquires a database connection from the pool.
	// It takes a context and returns a DatabaseConn representing the acquired connection and any encountered error.
	Acquire(*armadacontext.Context) (DatabaseConn, error)

	// Ping pings the database to check the connection. It returns any error encountered during the ping operation.
	Ping(*armadacontext.Context) error

	// Close closes the database connection. It returns any error encountered during the closing operation.
	Close()

	// Exec executes a query that doesn't return rows. It returns any error encountered.
	Exec(*armadacontext.Context, string, ...any) (any, error)

	// Query executes a query that returns multiple rows.
	// It returns a DatabaseRows interface that allows you to iterate over the result set, and any error encountered.
	Query(*armadacontext.Context, string, ...any) (DatabaseRows, error)

	// BeginTx starts a transcation with the given DatabaseTxOptions, or returns an error if any occurred.
	BeginTx(*armadacontext.Context, DatabaseTxOptions) (DatabaseTx, error)

	// BeginTxFunc starts a transaction and executes the given function within the transaction.
	// It the function runs successfully, BeginTxFunc commits the transaction, otherwise it rolls back and return an error.
	BeginTxFunc(*armadacontext.Context, DatabaseTxOptions, func(DatabaseTx) error) error
}

DatabasePool represents a database connection pool interface that provides methods for acquiring and managing database connections.

type DatabaseRow

type DatabaseRow interface {
	// Scan reads the values from the current row into dest values positionally.
	// It returns an error if any occurred during the read operation.
	Scan(dest ...any) error
}

DatabaseRow represents a single row in a result set.

type DatabaseRows

type DatabaseRows interface {
	// Close closes the result set.
	Close()

	// Next moves the iterator to the next row in the result set, it returns false if the result set is exhausted, otherwise true.
	Next() bool

	// Err returns the error, if any, encountered during iteration over the result set.
	Err() error

	// Scan reads the values from the current row into dest values positionally. It returns an error if any occurred during the read operation.
	Scan(dest ...any) error
}

DatabaseRows represents an interator over a result set.

type DatabaseTx

type DatabaseTx interface {
	// Exec executes a query that doesn't return rows. It returns any error encountered.
	Exec(*armadacontext.Context, string, ...any) (any, error)

	// Query executes a query that returns multiple rows.
	// It returns a DatabaseRows interface that allows you to iterate over the result set, and any error encountered.
	Query(*armadacontext.Context, string, ...any) (DatabaseRows, error)

	// QueryRow executes a query that returns one row.
	// It returns a DatabaseRow interface representing the result row, and any error encountered.
	QueryRow(*armadacontext.Context, string, ...any) DatabaseRow

	// CopyFrom performs a bulk insertion of data into a specified table.
	// It accepts the table name, column names, and a slice of rows representing the data to be inserted. It returns the number of rows inserted and any error encountered.
	CopyFrom(ctx *armadacontext.Context, tableName string, columnNames []string, rows [][]any) (int64, error)

	// Commit commits the transaction. It returns any error encountered during the commit operation.
	Commit(*armadacontext.Context) error

	// Rollback rolls back the transaction. It returns any error encountered during the rollback operation.
	Rollback(*armadacontext.Context) error
}

DatabaseTx represents a database transaction interface that provides methods for executing queries, managing transactions, and performing bulk insertions.

type DatabaseTxOptions

type DatabaseTxOptions struct {
	Isolation      string
	AccessMode     string
	DeferrableMode string
}

Jump to

Keyboard shortcuts

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