aboutsummaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2026-07-05 16:41:56 +0200
committerStefan Majewsky <majewsky@gmx.net>2026-07-05 16:41:56 +0200
commitc0da2ae262a5893d20cce393ba75d27a325cd771 (patch)
treef58c5c26a18ed378693b62d472d24c43c7aa3e8c /benchmark
parentbf64f18ea70a44bf6d9eb7ceafb74756aea2cc9d (diff)
downloadgo-oblast-c0da2ae262a5893d20cce393ba75d27a325cd771.tar.gz
oblast_pgx: support pgxpool
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/internal/oblast_pgx/handle.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/benchmark/internal/oblast_pgx/handle.go b/benchmark/internal/oblast_pgx/handle.go
index 7ccc9ea..845fbe4 100644
--- a/benchmark/internal/oblast_pgx/handle.go
+++ b/benchmark/internal/oblast_pgx/handle.go
@@ -11,6 +11,7 @@ import (
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgconn"
+ "github.com/jackc/pgx/v5/pgxpool"
"go.xyrillian.de/oblast/handle"
)
@@ -22,14 +23,16 @@ type Handle interface {
var (
_ Handle = &pgx.Conn{}
- _ Handle = pgx.Tx(nil)
+ _ Handle = &pgxpool.Conn{}
+ _ Handle = pgx.Tx(&pgxpool.Tx{})
)
-// TODO: offer wrapping for pgxpool.Pool and pgxpool.Conn?
func Wrap(h Handle) handle.Handle {
switch h := h.(type) {
case *pgx.Conn:
return wrappedHandle{h}
+ case *pgxpool.Conn:
+ return wrappedHandle{h}
case pgx.Tx:
return wrappedHandle{h}
default:
@@ -54,6 +57,9 @@ func (h wrappedHandle) OblastPrepare(ctx context.Context, query string, repeated
case *pgx.Conn:
stmt, err := inner.Prepare(ctx, name, query)
return wrappedPreparedStatement{ctx, stmt, h.inner}, err
+ case *pgxpool.Conn:
+ // pgxpool.Conn does not have Prepare()
+ return wrappedUnpreparedStatement{query, h.inner}, nil
case pgx.Tx:
stmt, err := inner.Conn().Prepare(ctx, name, query)
return wrappedPreparedStatement{ctx, stmt, h.inner}, err
@@ -67,6 +73,8 @@ func deallocate(ctx context.Context, h Handle, stmt *pgconn.StatementDescription
switch h := h.(type) {
case *pgx.Conn:
return h.Deallocate(ctx, stmt.Name)
+ case *pgxpool.Conn:
+ panic("unreachable") // because func OblastPrepare() does not return a wrappedPreparedStatement for this underlying type
case pgx.Tx:
return h.Conn().Deallocate(ctx, stmt.Name)
default: