Documentation
¶
Overview ¶
Package pg - пакет для изменения API работы с PostgreSQL.
Пакет основан на пакете pgx и pgxpool.
В обычном sql нет возможности создать запрос и выполнить его потом, в этом основная задача этого пакета.
Бонусом идет потокобезопасность, централизованное логирование ошибок.
Index ¶
- func Init(url string) (*pgxpool.Pool, error)
- func InitWithConfig(cfg *pgxpool.Config) (*pgxpool.Pool, error)
- func Ping() error
- func Shutdown()
- type Batch
- func (b *Batch) AddRequest(query string, params ...interface{})
- func (b *Batch) Close()
- func (b *Batch) Exec(_ context.Context) error
- func (b *Batch) HaveNext() bool
- func (b *Batch) Query(_ context.Context) error
- func (b *Batch) QueryRow()
- func (b *Batch) Release()
- func (b *Batch) RowsAffected() int64
- func (b *Batch) Scan(values ...interface{}) error
- func (b *Batch) Send(ctx context.Context)
- type DefaultRequestBuilder
- type Request
- func (r *Request) Clone() *Request
- func (r *Request) Close()
- func (r *Request) Exec(ctx context.Context) error
- func (r *Request) HaveNext() bool
- func (r *Request) IsEmpty() bool
- func (r *Request) Query(ctx context.Context) error
- func (r *Request) QueryRow(ctx context.Context)
- func (r *Request) RowsAffected() int64
- func (r *Request) Scan(dest ...interface{}) error
- type RequestBuilder
- type Scannable
- type Transaction
- type TxRequestBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InitWithConfig ¶ added in v0.0.46
InitWithConfig - инициализация пула соединений с конфигом вместо connection string
Types ¶
type Batch ¶
type Batch struct {
// contains filtered or unexported fields
}
Batch - обертка группы запросов в бд
func (*Batch) AddRequest ¶
func (*Batch) RowsAffected ¶
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 (*Request) RowsAffected ¶
type RequestBuilder ¶
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) 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: Не рекомендуется использовать, не удаляется ради обратной совместимости