2
0

Continue receiving and ignoring messages on SelectFunc until readyForQuery

This commit is contained in:
Jack Christensen
2013-07-08 16:17:40 -05:00
parent b8be47feb8
commit a6e742db24
+5 -14
View File
@@ -128,33 +128,24 @@ func (c *Connection) SelectFunc(sql string, onDataRow func(*DataRowReader) error
return return
} }
var callbackError error
for { for {
var t byte if t, r, rxErr := c.rxMsg(); rxErr == nil {
var r *MessageReader
if t, r, err = c.rxMsg(); err == nil {
switch t { switch t {
case readyForQuery: case readyForQuery:
if err == nil {
err = callbackError
}
return return
case rowDescription: case rowDescription:
fields = c.rxRowDescription(r) fields = c.rxRowDescription(r)
case dataRow: case dataRow:
if callbackError == nil { if err == nil {
callbackError = onDataRow(newDataRowReader(r, fields)) err = onDataRow(newDataRowReader(r, fields))
} }
case commandComplete: case commandComplete:
case bindComplete: case bindComplete:
default: default:
if err = c.processContextFreeMsg(t, r); err != nil { err = c.processContextFreeMsg(t, r)
return
}
} }
} else { } else {
return return rxErr
} }
} }
} }