Documentation ¶
Overview ¶
Package postgres helps to connect to postgres and provide transaction helpers.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DB ¶
type DB interface { Exec(ctx context.Context, sql string, arguments ...any) (commandTag pgconn.CommandTag, err error) Query(ctx context.Context, sql string, args ...any) (pgx.Rows, error) QueryRow(ctx context.Context, sql string, args ...any) pgx.Row }
DB - интерфейс, содержащий методы имеющиеся и в пуле соединений и в транзакции Таким образом мы работаем с этим интерфейсом для выполнения операций с БД, но не знаем выполняем действия в транзакции или нет, поскольку это не ответственность кода выполняющего запросы, а уровня выше который решает для каких операций необходимы транзакции.
type Postgres ¶
type Postgres struct {
// contains filtered or unexported fields
}
func (*Postgres) Pool ¶
Pool - Принимает контекст и возвращает транзакцию, если она встроена в передаваемый контекст, иначе пул соединений. Возвращается интерфейс, содержащий методы доступные как у транзакции так и у пула соединений.
func (*Postgres) WithTx ¶
WithTx - Принимает контекст и функцию принимающую контекст, начинает транзакцию и внедряет ее в новый контекст, который передается функции принятой в качестве параметра. Таким образом функция получит контекст, в который внедрена транзакция. Таким образом когда вызывающий код будет получать пул соединений функцией Pool он получит транзакцию. То есть внутри передаваемой функции можно вызвать несколько операций, которые будут работать в одной транзакции.