pg

package
v0.0.48 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package pg - пакет для изменения API работы с PostgreSQL.

Пакет основан на пакете pgx и pgxpool.

В обычном sql нет возможности создать запрос и выполнить его потом, в этом основная задача этого пакета.

Бонусом идет потокобезопасность, централизованное логирование ошибок.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init

func Init(url string) (*pgxpool.Pool, error)

Init - инициализация пула соединений

func InitWithConfig added in v0.0.46

func InitWithConfig(cfg *pgxpool.Config) (*pgxpool.Pool, error)

InitWithConfig - инициализация пула соединений с конфигом вместо connection string

func Ping

func Ping() error

Ping - проверка состояния базы данных

func Shutdown

func Shutdown()

Shutdown - Остановка пула соединений

Types

type Batch

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

Batch - обертка группы запросов в бд

func NewBatch

func NewBatch() *Batch

func (*Batch) AddRequest

func (b *Batch) AddRequest(query string, params ...interface{})

func (*Batch) Close

func (b *Batch) Close()

func (*Batch) Exec

func (b *Batch) Exec(_ context.Context) error

func (*Batch) HaveNext

func (b *Batch) HaveNext() bool

func (*Batch) Query

func (b *Batch) Query(_ context.Context) error

func (*Batch) QueryRow

func (b *Batch) QueryRow()

func (*Batch) Release

func (b *Batch) Release()

func (*Batch) RowsAffected

func (b *Batch) RowsAffected() int64

func (*Batch) Scan

func (b *Batch) Scan(values ...interface{}) error

func (*Batch) Send

func (b *Batch) Send(ctx context.Context)

type DefaultRequestBuilder

type DefaultRequestBuilder struct {
}

DefaultRequestBuilder - реализация интерфейса RequestBuilder без транзакции Deprecated: Не рекомендуется использовать, не удаляется ради обратной совместимости

func (*DefaultRequestBuilder) NewRequest

func (d *DefaultRequestBuilder) NewRequest(query string, params ...interface{}) *Request

NewRequest - реализация NewRequest Deprecated: Не рекомендуется использовать, не удаляется ради обратной совместимости

type Request

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

Request - обертка запроса в базу данных

func NewRequest

func NewRequest(query string, params ...interface{}) *Request

func (*Request) Clone

func (r *Request) Clone() *Request

func (*Request) Close

func (r *Request) Close()

func (*Request) Exec

func (r *Request) Exec(ctx context.Context) error

func (*Request) HaveNext

func (r *Request) HaveNext() bool

func (*Request) IsEmpty

func (r *Request) IsEmpty() bool

func (*Request) Query

func (r *Request) Query(ctx context.Context) error

func (*Request) QueryRow

func (r *Request) QueryRow(ctx context.Context)

func (*Request) RowsAffected

func (r *Request) RowsAffected() int64

func (*Request) Scan

func (r *Request) Scan(dest ...interface{}) error

type RequestBuilder

type RequestBuilder interface {
	NewRequest(query string, params ...interface{}) *Request
}

RequestBuilder - интерфейс, определяющий структуру, генерирующую бд-запросы. Нужен, чтобы генерировать запросы не думая о том, через транзакцию это происходит или нет. Deprecated: Не рекомендуется использовать, не удаляется ради обратной совместимости

func NewRequestBuilder

func NewRequestBuilder(tx *Transaction) RequestBuilder

NewRequestBuilder - создание RequestBuilder, допускающее nil транзакцию Deprecated: Не рекомендуется использовать, не удаляется ради обратной совместимости

type Scannable

type Scannable interface {
	Query(ctx context.Context) error
	Scan(...interface{}) error
	HaveNext() bool
	Close()
}

Scannable - интерфейс определяющий источник сканирования данных. Нужен, чтобы можно было писать одну сканирующую функцию для Request и Batch

type Transaction

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

Transaction - обертка над бд транзакцией

func NewTransaction

func NewTransaction(ctx context.Context, opts pgx.TxOptions) (*Transaction, error)

func (*Transaction) Commit

func (t *Transaction) Commit(ctx context.Context) error

func (*Transaction) NewBatch

func (t *Transaction) NewBatch() *Batch

NewBatch - создание группы запросов в транзакции

func (*Transaction) NewRequest

func (t *Transaction) NewRequest(query string, params ...interface{}) *Request

NewRequest - создание запроса в транзакции

func (*Transaction) Rollback

func (t *Transaction) Rollback(ctx context.Context)

type TxRequestBuilder

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

TxRequestBuilder - реализация интерфейса RequestBuilder через транзакцию Deprecated: Не рекомендуется использовать, не удаляется ради обратной совместимости

func NewTxRequestBuilder

func NewTxRequestBuilder(tx *Transaction) *TxRequestBuilder

NewTxRequestBuilder - создание TxRequestBuilder Deprecated: Не рекомендуется использовать, не удаляется ради обратной совместимости

func (*TxRequestBuilder) NewRequest

func (t *TxRequestBuilder) NewRequest(query string, params ...interface{}) *Request

NewRequest - реализация NewRequest Deprecated: Не рекомендуется использовать, не удаляется ради обратной совместимости

Jump to

Keyboard shortcuts

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