From 66df58136d7daedc2aa318f10fadcdf0091ec11e Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Sat, 21 Jun 2014 17:38:47 -0500 Subject: [PATCH] Conn Close should release if from pool --- stdlib/sql.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/stdlib/sql.go b/stdlib/sql.go index c018b2cb..dbfe04f8 100644 --- a/stdlib/sql.go +++ b/stdlib/sql.go @@ -26,7 +26,7 @@ func (d *Driver) Open(name string) (driver.Conn, error) { return nil, err } - return &Conn{conn: conn}, nil + return &Conn{conn: conn, pool: d.Pool}, nil } connConfig, err := pgx.ParseURI(name) @@ -68,6 +68,7 @@ func OpenFromConnPool(pool *pgx.ConnPool) (*sql.DB, error) { type Conn struct { conn *pgx.Conn + pool *pgx.ConnPool psCount int64 // Counter used for creating unique prepared statement names } @@ -88,6 +89,11 @@ func (c *Conn) Prepare(query string) (driver.Stmt, error) { } func (c *Conn) Close() error { + if c.pool != nil { + c.pool.Release(c.conn) + return nil + } + return c.conn.Close() }