2
0

Fix SendBatch of all prepared statements with statement cache disabled

fixes #856
This commit is contained in:
Jack Christensen
2020-10-29 20:28:57 -05:00
parent 5f8d853b34
commit 7c47415150
2 changed files with 66 additions and 9 deletions
+11 -9
View File
@@ -702,16 +702,18 @@ func (c *Conn) SendBatch(ctx context.Context, b *Batch) BatchResults {
}
var stmtCache stmtcache.Cache
if c.stmtcache != nil && c.stmtcache.Cap() >= len(distinctUnpreparedQueries) {
stmtCache = c.stmtcache
} else {
stmtCache = stmtcache.New(c.pgConn, stmtcache.ModeDescribe, len(distinctUnpreparedQueries))
}
if len(distinctUnpreparedQueries) > 0 {
if c.stmtcache != nil && c.stmtcache.Cap() >= len(distinctUnpreparedQueries) {
stmtCache = c.stmtcache
} else {
stmtCache = stmtcache.New(c.pgConn, stmtcache.ModeDescribe, len(distinctUnpreparedQueries))
}
for sql, _ := range distinctUnpreparedQueries {
_, err := stmtCache.Get(ctx, sql)
if err != nil {
return &batchResults{ctx: ctx, conn: c, err: err}
for sql, _ := range distinctUnpreparedQueries {
_, err := stmtCache.Get(ctx, sql)
if err != nil {
return &batchResults{ctx: ctx, conn: c, err: err}
}
}
}