pgxpool

package
v2.1.0 Latest Latest
Warning

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

Go to latest
Published: May 2, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package pgxpool adapts pgxpool to api-toolkit database ports.

New constructs a Postgres pool adapter for ports.DatabasePool. New observability code should prefer StatSnapshot and plain-value snapshot APIs; legacy pgx-shaped stats remain compatibility-sensitive in v2.

This contrib adapter is maintained but not part of the stable core API gate.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(dsn string) (ports.DatabasePool, error)

New creates a new database pool adapter using a bounded startup context. Callers that need direct context control should use NewWithContext.

func NewWithContext

func NewWithContext(ctx context.Context, dsn string) (ports.DatabasePool, error)

NewWithContext creates a new database pool adapter with a context.

Types

type Adapter

type Adapter struct {
	*pgxpool.Pool
}

Adapter wraps pgxpool.Pool to implement ports.DatabasePool.

func (*Adapter) Acquire

func (a *Adapter) Acquire(ctx context.Context) (ports.DatabaseConnection, error)

Acquire gets a connection from the pool.

func (*Adapter) Stat

func (a *Adapter) Stat() ports.DatabaseStats

Stat returns the legacy database stats compatibility wrapper.

func (*Adapter) StatSnapshot added in v2.1.0

func (a *Adapter) StatSnapshot() ports.DatabasePoolSnapshot

StatSnapshot returns pool statistics as plain values for new call sites.

type Connection

type Connection struct {
	*pgxpool.Conn
}

Connection wraps pgxpool.Conn to implement ports.DatabaseConnection.

func (*Connection) Begin

Begin starts a transaction.

func (*Connection) Exec

func (c *Connection) Exec(ctx context.Context, sql string, args ...any) (ports.DatabaseResult, error)

Exec executes a query without returning rows.

func (*Connection) Query

func (c *Connection) Query(ctx context.Context, sql string, args ...any) (ports.DatabaseRows, error)

Query executes a query and returns rows.

func (*Connection) QueryRow

func (c *Connection) QueryRow(ctx context.Context, sql string, args ...any) ports.DatabaseRow

QueryRow executes a query and returns a single row.

type Result

type Result struct {
	pgconn.CommandTag
}

Result wraps pgconn.CommandTag to implement ports.DatabaseResult.

type Row

type Row struct {
	pgx.Row
}

Row wraps pgx.Row to implement ports.DatabaseRow.

type Rows

type Rows struct {
	pgx.Rows
}

Rows wraps pgx.Rows to implement ports.DatabaseRows.

type Stats

type Stats struct {
	*pgxpool.Stat
}

Stats wraps pgxpool.Stat to implement ports.DatabaseStats.

func (*Stats) AcquireCount

func (s *Stats) AcquireCount() int64

AcquireCount returns the number of times a connection was acquired from the pool.

func (*Stats) AcquireDuration

func (s *Stats) AcquireDuration() time.Duration

AcquireDuration returns the total duration of all connection acquisitions.

func (*Stats) AcquiredConns

func (s *Stats) AcquiredConns() int32

AcquiredConns returns the number of currently acquired connections.

func (*Stats) CanceledAcquireCount

func (s *Stats) CanceledAcquireCount() int64

CanceledAcquireCount returns the number of times a connection acquisition was canceled.

func (*Stats) ConstructingConns

func (s *Stats) ConstructingConns() int32

ConstructingConns returns the number of connections currently being constructed.

func (*Stats) EmptyAcquireCount

func (s *Stats) EmptyAcquireCount() int64

EmptyAcquireCount returns the number of times a connection was requested when the pool was empty.

func (*Stats) IdleConns

func (s *Stats) IdleConns() int32

IdleConns returns the number of idle connections.

func (*Stats) MaxConns

func (s *Stats) MaxConns() int32

MaxConns returns the maximum number of connections in the pool.

func (*Stats) NewConnsCount

func (s *Stats) NewConnsCount() int64

NewConnsCount returns the number of new connections created.

func (*Stats) TotalConns

func (s *Stats) TotalConns() int32

TotalConns returns the total number of connections in the pool.

type Transaction

type Transaction struct {
	pgx.Tx
}

Transaction wraps pgx.Tx to implement ports.DatabaseTransaction.

func (*Transaction) Exec

func (t *Transaction) Exec(ctx context.Context, sql string, args ...any) (ports.DatabaseResult, error)

Exec executes a query without returning rows.

func (*Transaction) Query

func (t *Transaction) Query(ctx context.Context, sql string, args ...any) (ports.DatabaseRows, error)

Query executes a query and returns rows.

func (*Transaction) QueryRow

func (t *Transaction) QueryRow(ctx context.Context, sql string, args ...any) ports.DatabaseRow

QueryRow executes a query and returns a single row.

Jump to

Keyboard shortcuts

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