diff --git a/lib/gat/modes/pgbouncer/config.go b/lib/gat/modes/pgbouncer/config.go index dfd7eca99255920568b928a83fb218f74ef6a4e5..d33887251411cbcc84e2179cc6328552a775f870 100644 --- a/lib/gat/modes/pgbouncer/config.go +++ b/lib/gat/modes/pgbouncer/config.go @@ -15,6 +15,7 @@ import ( "pggat2/lib/bouncer/frontends/v0" "pggat2/lib/gat/pool" "pggat2/lib/gat/pool/pools/session" + "pggat2/lib/gat/pool/pools/transaction" "pggat2/lib/auth/credentials" "pggat2/lib/gat" @@ -329,8 +330,7 @@ func (T *Config) ListenAndServe() error { if T.PgBouncer.ServerResetQueryAlways == 0 { poolOptions.ServerResetQuery = "" } - panic("transaction mode not implemented yet") - // TODO(garet) + p = transaction.NewPool(poolOptions) default: return errors.New("unsupported pool mode") } diff --git a/lib/gat/modes/zalando/config.go b/lib/gat/modes/zalando/config.go index 1a2a2739130ade5dd289c162db928760bfa653c7..bca45eb93b84ff9a534c9c7e5353f04c3fb64036 100644 --- a/lib/gat/modes/zalando/config.go +++ b/lib/gat/modes/zalando/config.go @@ -13,6 +13,7 @@ import ( "pggat2/lib/bouncer/backends/v0" "pggat2/lib/bouncer/frontends/v0" "pggat2/lib/gat/pool/pools/session" + "pggat2/lib/gat/pool/pools/transaction" "pggat2/lib/auth/credentials" "pggat2/lib/gat" @@ -55,8 +56,7 @@ func (T *Config) ListenAndServe() error { var p *pool.Pool if T.PoolerMode == "transaction" { - panic("transaction mode not implemented yet") - // TODO(garet) p = transaction.NewPool(pool.Options{}) + p = transaction.NewPool(pool.Options{}) } else { p = session.NewPool(pool.Options{}) } diff --git a/lib/gat/pool/pools/transaction/pool.go b/lib/gat/pool/pools/transaction/pool.go new file mode 100644 index 0000000000000000000000000000000000000000..78a0ae528b314c528a14fb9ecc92d5a86961a0fd --- /dev/null +++ b/lib/gat/pool/pools/transaction/pool.go @@ -0,0 +1,10 @@ +package transaction + +import "pggat2/lib/gat/pool" + +func NewPool(options pool.Options) *pool.Pool { + // TODO(garet) options.Pooler = new(Pooler) + options.ParameterStatusSync = pool.ParameterStatusSyncDynamic + options.ExtendedQuerySync = true + return pool.NewPool(options) +}