Extract DecodeValue helper

query-exec-mode
Jack Christensen 2022-01-03 21:19:00 -06:00
parent ad6ee2bd56
commit f7c0c31e87
6 changed files with 15 additions and 35 deletions

View File

@ -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
} }

View File

@ -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
} }

View File

@ -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
} }

View File

@ -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
} }

View File

@ -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
} }

View File

@ -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)
}