aboutsummaryrefslogblamecommitdiff
path: root/vendor/github.com/jackc/pgx/v5/pgxpool/tracer.go
blob: 78b9d15a2d54ef34db15f82e66039da4df725827 (plain) (tree)
































                                                                                                           
package pgxpool

import (
	"context"

	"github.com/jackc/pgx/v5"
)

// AcquireTracer traces Acquire.
type AcquireTracer interface {
	// TraceAcquireStart is called at the beginning of Acquire.
	// The returned context is used for the rest of the call and will be passed to the TraceAcquireEnd.
	TraceAcquireStart(ctx context.Context, pool *Pool, data TraceAcquireStartData) context.Context
	// TraceAcquireEnd is called when a connection has been acquired.
	TraceAcquireEnd(ctx context.Context, pool *Pool, data TraceAcquireEndData)
}

type TraceAcquireStartData struct{}

type TraceAcquireEndData struct {
	Conn *pgx.Conn
	Err  error
}

// ReleaseTracer traces Release.
type ReleaseTracer interface {
	// TraceRelease is called at the beginning of Release.
	TraceRelease(pool *Pool, data TraceReleaseData)
}

type TraceReleaseData struct {
	Conn *pgx.Conn
}