2
0

Add JSON/JSONB support

This commit is contained in:
Joseph Glanville
2015-09-04 05:51:57 +10:00
parent fee3679cb9
commit 0013733535
4 changed files with 85 additions and 1 deletions
+16 -1
View File
@@ -284,7 +284,14 @@ func (rows *Rows) Scan(dest ...interface{}) (err error) {
rows.Fatal(err)
}
default:
rows.Fatal(fmt.Errorf("Scan cannot decode into %T", d))
switch vr.Type().DataType {
case JsonOid:
decodeJson(vr, &d)
case JsonbOid:
decodeJson(vr, &d)
default:
rows.Fatal(fmt.Errorf("Scan cannot decode into %T", d))
}
}
if vr.Err() != nil {
@@ -360,6 +367,14 @@ func (rows *Rows) Values() ([]interface{}, error) {
values = append(values, decodeTimestamp(vr))
case InetOid, CidrOid:
values = append(values, decodeInet(vr))
case JsonOid:
var d interface{}
decodeJson(vr, &d)
values = append(values, d)
case JsonbOid:
var d interface{}
decodeJson(vr, &d)
values = append(values, d)
default:
rows.Fatal(errors.New("Values cannot handle binary format non-intrinsic types"))
}