Added basic Query functionality

pgx-vs-pq
Jack Christensen 2013-04-08 21:28:44 -05:00
parent 63d16ae3ac
commit bf0891db7d
1 changed files with 4 additions and 3 deletions

View File

@ -77,17 +77,18 @@ func (c *conn) Query(sql string) (rows []map[string]string, err error) {
} }
var fields []fieldDescription var fields []fieldDescription
rows = make([]map[string]string, 0)
for { for {
var t byte var t byte
var r *messageReader var r *messageReader
if t, r, err = c.rxMsg(); err == nil { if t, r, err = c.rxMsg(); err == nil {
switch t { switch t {
case readyForQuery: case readyForQuery:
return nil, nil return rows, nil
case rowDescription: case rowDescription:
fields = c.rxRowDescription(r) fields = c.rxRowDescription(r)
case dataRow: case dataRow:
c.rxDataRow(r, fields) rows = append(rows, c.rxDataRow(r, fields))
case commandComplete: case commandComplete:
c.rxCommandComplete(r) c.rxCommandComplete(r)
default: default:
@ -206,7 +207,7 @@ func (c *conn) rxRowDescription(r *messageReader) (fields []fieldDescription) {
return return
} }
func (c *conn) rxDataRow(r *messageReader, fields []fieldDescription) (row map[string]string, err error) { func (c *conn) rxDataRow(r *messageReader, fields []fieldDescription) (row map[string]string) {
fieldCount := r.readInt16() fieldCount := r.readInt16()
row = make(map[string]string, fieldCount) row = make(map[string]string, fieldCount)