mirror of https://github.com/jackc/pgx.git
Extract DecodeValue helper
parent
ad6ee2bd56
commit
f7c0c31e87
|
@ -169,11 +169,7 @@ func (c BoolCodec) DecodeValue(ci *ConnInfo, oid uint32, format int16, src []byt
|
||||||
}
|
}
|
||||||
|
|
||||||
var b bool
|
var b bool
|
||||||
scanPlan := c.PlanScan(ci, oid, format, &b, true)
|
err := codecScan(c, ci, oid, format, src, &b)
|
||||||
if scanPlan == nil {
|
|
||||||
return nil, fmt.Errorf("PlanScan did not find a plan")
|
|
||||||
}
|
|
||||||
err := scanPlan.Scan(ci, oid, format, src, &b)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,11 +147,7 @@ func (c BoxCodec) DecodeValue(ci *ConnInfo, oid uint32, format int16, src []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
var box Box
|
var box Box
|
||||||
scanPlan := c.PlanScan(ci, oid, format, &box, true)
|
err := codecScan(c, ci, oid, format, src, &box)
|
||||||
if scanPlan == nil {
|
|
||||||
return nil, fmt.Errorf("PlanScan did not find a plan")
|
|
||||||
}
|
|
||||||
err := scanPlan.Scan(ci, oid, format, src, &box)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,11 +145,7 @@ func (c CircleCodec) DecodeValue(ci *ConnInfo, oid uint32, format int16, src []b
|
||||||
}
|
}
|
||||||
|
|
||||||
var circle Circle
|
var circle Circle
|
||||||
scanPlan := c.PlanScan(ci, oid, format, &circle, true)
|
err := codecScan(c, ci, oid, format, src, &circle)
|
||||||
if scanPlan == nil {
|
|
||||||
return nil, fmt.Errorf("PlanScan did not find a plan")
|
|
||||||
}
|
|
||||||
err := scanPlan.Scan(ci, oid, format, src, &circle)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -226,11 +226,7 @@ func (c Int2Codec) DecodeValue(ci *ConnInfo, oid uint32, format int16, src []byt
|
||||||
}
|
}
|
||||||
|
|
||||||
var n int16
|
var n int16
|
||||||
scanPlan := c.PlanScan(ci, oid, format, &n, true)
|
err := codecScan(c, ci, oid, format, src, &n)
|
||||||
if scanPlan == nil {
|
|
||||||
return nil, fmt.Errorf("PlanScan did not find a plan")
|
|
||||||
}
|
|
||||||
err := scanPlan.Scan(ci, oid, format, src, &n)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -714,11 +710,7 @@ func (c Int4Codec) DecodeValue(ci *ConnInfo, oid uint32, format int16, src []byt
|
||||||
}
|
}
|
||||||
|
|
||||||
var n int32
|
var n int32
|
||||||
scanPlan := c.PlanScan(ci, oid, format, &n, true)
|
err := codecScan(c, ci, oid, format, src, &n)
|
||||||
if scanPlan == nil {
|
|
||||||
return nil, fmt.Errorf("PlanScan did not find a plan")
|
|
||||||
}
|
|
||||||
err := scanPlan.Scan(ci, oid, format, src, &n)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -1213,11 +1205,7 @@ func (c Int8Codec) DecodeValue(ci *ConnInfo, oid uint32, format int16, src []byt
|
||||||
}
|
}
|
||||||
|
|
||||||
var n int64
|
var n int64
|
||||||
scanPlan := c.PlanScan(ci, oid, format, &n, true)
|
err := codecScan(c, ci, oid, format, src, &n)
|
||||||
if scanPlan == nil {
|
|
||||||
return nil, fmt.Errorf("PlanScan did not find a plan")
|
|
||||||
}
|
|
||||||
err := scanPlan.Scan(ci, oid, format, src, &n)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,11 +227,7 @@ func (c Int<%= pg_byte_size %>Codec) DecodeValue(ci *ConnInfo, oid uint32, forma
|
||||||
}
|
}
|
||||||
|
|
||||||
var n int<%= pg_bit_size %>
|
var n int<%= pg_bit_size %>
|
||||||
scanPlan := c.PlanScan(ci, oid, format, &n, true)
|
err := codecScan(c, ci, oid, format, src, &n)
|
||||||
if scanPlan == nil {
|
|
||||||
return nil, fmt.Errorf("PlanScan did not find a plan")
|
|
||||||
}
|
|
||||||
err := scanPlan.Scan(ci, oid, format, src, &n)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -960,3 +960,11 @@ func NewValue(v Value) Value {
|
||||||
}
|
}
|
||||||
|
|
||||||
var ErrScanTargetTypeChanged = errors.New("scan target type changed")
|
var ErrScanTargetTypeChanged = errors.New("scan target type changed")
|
||||||
|
|
||||||
|
func codecScan(codec Codec, ci *ConnInfo, oid uint32, format int16, src []byte, dst interface{}) error {
|
||||||
|
scanPlan := codec.PlanScan(ci, oid, format, dst, true)
|
||||||
|
if scanPlan == nil {
|
||||||
|
return fmt.Errorf("PlanScan did not find a plan")
|
||||||
|
}
|
||||||
|
return scanPlan.Scan(ci, oid, format, src, dst)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue