types

package
v0.3.8655 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 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(context.Context) error

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

	// Exec executes a query that doesn't return rows. It returns any error encountered.
	Exec(context.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(context.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(context.Context, string, ...any) DatabaseRow

	// BeginTx starts a transcation with the given DatabaseTxOptions, or returns an error if any occurred.
	BeginTx(context.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(context.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(context.Context) (DatabaseConn, error)

	// Ping pings the database to check the connection. It returns any error encountered during the ping operation.
	Ping(context.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(context.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(context.Context, string, ...any) (DatabaseRows, error)

	// BeginTx starts a transcation with the given DatabaseTxOptions, or returns an error if any occurred.
	BeginTx(context.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(context.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(context.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(context.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(context.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 context.Context, tableName string, columnNames []string, rows [][]any) (int64, error)

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

	// Rollback rolls back the transaction. It returns any error encountered during the rollback operation.
	Rollback(context.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