diff --git a/lib/gat/modes/pgbouncer/pools.go b/lib/gat/modes/pgbouncer/pools.go index 5ecc862b250286949f51966f659f974bd056042b..db7858cb3311ce3e77def2d5f57065fc0d2e6d7f 100644 --- a/lib/gat/modes/pgbouncer/pools.go +++ b/lib/gat/modes/pgbouncer/pools.go @@ -15,9 +15,9 @@ import ( "pggat2/lib/bouncer/frontends/v0" "pggat2/lib/gat" "pggat2/lib/gat/pool" - "pggat2/lib/gat/pool/dialer" "pggat2/lib/gat/pool/pools/session" "pggat2/lib/gat/pool/pools/transaction" + dialer2 "pggat2/lib/gat/pool/recipe/dialer" "pggat2/lib/gsql" "pggat2/lib/util/maps" "pggat2/lib/util/strutil" @@ -173,7 +173,7 @@ func (T *Pools) Lookup(user, database string) *pool.Pool { Database: database, }, p) - var d dialer.Dialer + var d dialer2.Dialer dbCreds := creds if db.Password != "" { @@ -205,7 +205,7 @@ func (T *Pools) Lookup(user, database string) *pool.Pool { dir = dir + ".s.PGSQL." + strconv.Itoa(port) - d = dialer.Net{ + d = dialer2.Net{ Network: "unix", Address: dir, AcceptOptions: acceptOptions, @@ -219,7 +219,7 @@ func (T *Pools) Lookup(user, database string) *pool.Pool { } // connect over tcp - d = dialer.Net{ + d = dialer2.Net{ Network: "tcp", Address: address, AcceptOptions: acceptOptions, diff --git a/lib/gat/pool/recipe.go b/lib/gat/pool/recipe.go index d7d987032dfa3aa6920c96e80dbc1ff01ae90702..0dc7acfcceeb34714546250fb209cb3002db7933 100644 --- a/lib/gat/pool/recipe.go +++ b/lib/gat/pool/recipe.go @@ -1,6 +1,8 @@ package pool -import "pggat2/lib/gat/pool/dialer" +import ( + "pggat2/lib/gat/pool/recipe/dialer" +) type Recipe struct { Dialer dialer.Dialer diff --git a/lib/gat/pool/dialer/dialer.go b/lib/gat/pool/recipe/dialer/dialer.go similarity index 100% rename from lib/gat/pool/dialer/dialer.go rename to lib/gat/pool/recipe/dialer/dialer.go diff --git a/lib/gat/pool/dialer/net.go b/lib/gat/pool/recipe/dialer/net.go similarity index 100% rename from lib/gat/pool/dialer/net.go rename to lib/gat/pool/recipe/dialer/net.go diff --git a/lib/gat/pool/recipe/options.go b/lib/gat/pool/recipe/options.go new file mode 100644 index 0000000000000000000000000000000000000000..07b21307c88324ce8efa7fd8398871972af2ba1f --- /dev/null +++ b/lib/gat/pool/recipe/options.go @@ -0,0 +1,13 @@ +package recipe + +import ( + "pggat2/lib/gat/pool/recipe/dialer" +) + +type Options struct { + Dialer dialer.Dialer + + MinConnections int + // MaxConnections is the max number of simultaneous connections from this recipe. 0 = unlimited + MaxConnections int +} diff --git a/lib/gat/pool/recipe/recipe.go b/lib/gat/pool/recipe/recipe.go new file mode 100644 index 0000000000000000000000000000000000000000..2e8077598e8d9b67f5437cdddd9f4984fd7be614 --- /dev/null +++ b/lib/gat/pool/recipe/recipe.go @@ -0,0 +1,15 @@ +package recipe + +type Recipe struct { + options Options +} + +func NewRecipe(options Options) *Recipe { + return &Recipe{ + options: options, + } +} + +func (T *Recipe) Dial() { + +} diff --git a/lib/gat/pool/recipe/server.go b/lib/gat/pool/recipe/server.go new file mode 100644 index 0000000000000000000000000000000000000000..95bf6346aba8036fd350439fa815580f9cbca92e --- /dev/null +++ b/lib/gat/pool/recipe/server.go @@ -0,0 +1,4 @@ +package recipe + +type Server struct { +}