Created
January 7, 2014 09:40
-
-
Save slene/8297019 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/qbs.go b/qbs.go | |
index f3a6774..558657b 100644 | |
--- a/qbs.go | |
+++ b/qbs.go | |
@@ -273,6 +273,7 @@ func (q *Qbs) doQueryRow(out interface{}, query string, args ...interface{}) err | |
if err != nil { | |
return q.updateTxError(err) | |
} | |
+ defer stmt.Close() | |
rows, err := stmt.Query(args...) | |
if err != nil { | |
return q.updateTxError(err) | |
@@ -298,6 +299,7 @@ func (q *Qbs) doQueryRows(out interface{}, query string, args ...interface{}) er | |
if err != nil { | |
return q.updateTxError(err) | |
} | |
+ defer stmt.Close() | |
rows, err := stmt.Query(args...) | |
if err != nil { | |
return q.updateTxError(err) | |
@@ -366,6 +368,7 @@ func (q *Qbs) Exec(query string, args ...interface{}) (sql.Result, error) { | |
if err != nil { | |
return nil, q.updateTxError(err) | |
} | |
+ defer stmt.Close() | |
result, err := stmt.Exec(args...) | |
if err != nil { | |
return nil, q.updateTxError(err) | |
@@ -382,6 +385,7 @@ func (q *Qbs) QueryRow(query string, args ...interface{}) *sql.Row { | |
q.updateTxError(err) | |
return nil | |
} | |
+ defer stmt.Close() | |
return stmt.QueryRow(args...) | |
} | |
@@ -394,39 +398,40 @@ func (q *Qbs) Query(query string, args ...interface{}) (rows *sql.Rows, err erro | |
q.updateTxError(err) | |
return | |
} | |
+ defer stmt.Close() | |
return stmt.Query(args...) | |
} | |
// Same as sql.Db.Prepare or sql.Tx.Prepare depends on if transaction has began | |
func (q *Qbs) prepare(query string) (stmt *sql.Stmt, err error) { | |
- var ok bool | |
+ // var ok bool | |
if q.tx != nil { | |
- stmt, ok = q.txStmtMap[query] | |
- if ok { | |
- return | |
- } | |
+ // stmt, ok = q.txStmtMap[query] | |
+ // if ok { | |
+ // return | |
+ // } | |
stmt, err = q.tx.Prepare(query) | |
if err != nil { | |
q.updateTxError(err) | |
return | |
} | |
- q.txStmtMap[query] = stmt | |
+ // q.txStmtMap[query] = stmt | |
} else { | |
- mu.RLock() | |
- stmt, ok = stmtMap[query] | |
- mu.RUnlock() | |
- if ok { | |
- return | |
- } | |
+ // mu.RLock() | |
+ // stmt, ok = stmtMap[query] | |
+ // mu.RUnlock() | |
+ // if ok { | |
+ // return | |
+ // } | |
stmt, err = db.Prepare(query + ";") | |
if err != nil { | |
q.updateTxError(err) | |
return | |
} | |
- mu.Lock() | |
- stmtMap[query] = stmt | |
- mu.Unlock() | |
+ // mu.Lock() | |
+ // stmtMap[query] = stmt | |
+ // mu.Unlock() | |
} | |
return | |
} | |
@@ -631,6 +636,7 @@ func (q *Qbs) doQueryMap(query string, once bool, args ...interface{}) ([]map[st | |
if err != nil { | |
return nil, q.updateTxError(err) | |
} | |
+ defer stmt.Close() | |
rows, err := stmt.Query(args...) | |
if err != nil { | |
return nil, q.updateTxError(err) | |
@@ -676,6 +682,7 @@ func (q *Qbs) QueryStruct(dest interface{}, query string, args ...interface{}) e | |
if err != nil { | |
return q.updateTxError(err) | |
} | |
+ defer stmt.Close() | |
rows, err := stmt.Query(args...) | |
if err != nil { | |
return q.updateTxError(err) | |
@@ -744,6 +751,7 @@ func (q *Qbs) Iterate(structPtr interface{}, do func() error) error { | |
if err != nil { | |
return q.updateTxError(err) | |
} | |
+ defer stmt.Close() | |
rows, err := stmt.Query(args...) | |
if err != nil { | |
return q.updateTxError(err) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment