From a6e742db2410c6c3a29c3f28a2e2eb72ac18ec61 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Mon, 8 Jul 2013 16:17:40 -0500 Subject: [PATCH] Continue receiving and ignoring messages on SelectFunc until readyForQuery --- connection.go | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/connection.go b/connection.go index 01c23f38..c1b8ba7c 100644 --- a/connection.go +++ b/connection.go @@ -128,33 +128,24 @@ func (c *Connection) SelectFunc(sql string, onDataRow func(*DataRowReader) error return } - var callbackError error - for { - var t byte - var r *MessageReader - if t, r, err = c.rxMsg(); err == nil { + if t, r, rxErr := c.rxMsg(); rxErr == nil { switch t { case readyForQuery: - if err == nil { - err = callbackError - } return case rowDescription: fields = c.rxRowDescription(r) case dataRow: - if callbackError == nil { - callbackError = onDataRow(newDataRowReader(r, fields)) + if err == nil { + err = onDataRow(newDataRowReader(r, fields)) } case commandComplete: case bindComplete: default: - if err = c.processContextFreeMsg(t, r); err != nil { - return - } + err = c.processContextFreeMsg(t, r) } } else { - return + return rxErr } } }