2
0

Dirty, but somewhat working prepared statements and extended protocol

This commit is contained in:
Jack Christensen
2013-07-01 15:41:20 -05:00
parent 1042f095ee
commit 5073a3b9e0
6 changed files with 285 additions and 31 deletions
+10 -3
View File
@@ -20,13 +20,20 @@ func newDataRowReader(mr *MessageReader, fields []FieldDescription) (r *DataRowR
}
func (r *DataRowReader) ReadValue() interface{} {
dataType := r.fields[r.currentFieldIdx].DataType
fieldDescription := r.fields[r.currentFieldIdx]
r.currentFieldIdx++
size := r.mr.ReadInt32()
if size > -1 {
if vt, present := valueTranscoders[dataType]; present {
return vt.FromText(r.mr, size)
if vt, present := valueTranscoders[fieldDescription.DataType]; present {
switch fieldDescription.FormatCode {
case 0:
return vt.DecodeText(r.mr, size)
case 1:
return vt.DecodeBinary(r.mr, size)
default:
panic("Unknown format")
}
} else {
return r.mr.ReadByteString(size)
}