mirror of https://github.com/jackc/pgx.git
parent
693c7c7f7d
commit
0b5b7c0d1e
21
bpchar.go
21
bpchar.go
|
@ -2,6 +2,7 @@ package pgtype
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql/driver"
|
"database/sql/driver"
|
||||||
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
// BPChar is fixed-length, blank padded char type
|
// BPChar is fixed-length, blank padded char type
|
||||||
|
@ -20,7 +21,8 @@ func (dst BPChar) Get() interface{} {
|
||||||
|
|
||||||
// AssignTo assigns from src to dst.
|
// AssignTo assigns from src to dst.
|
||||||
func (src *BPChar) AssignTo(dst interface{}) error {
|
func (src *BPChar) AssignTo(dst interface{}) error {
|
||||||
if src.Status == Present {
|
switch src.Status {
|
||||||
|
case Present:
|
||||||
switch v := dst.(type) {
|
switch v := dst.(type) {
|
||||||
case *rune:
|
case *rune:
|
||||||
runes := []rune(src.String)
|
runes := []rune(src.String)
|
||||||
|
@ -28,9 +30,24 @@ func (src *BPChar) AssignTo(dst interface{}) error {
|
||||||
*v = runes[0]
|
*v = runes[0]
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
case *string:
|
||||||
|
*v = src.String
|
||||||
|
return nil
|
||||||
|
case *[]byte:
|
||||||
|
*v = make([]byte, len(src.String))
|
||||||
|
copy(*v, src.String)
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
if nextDst, retry := GetAssignToDstType(dst); retry {
|
||||||
|
return src.AssignTo(nextDst)
|
||||||
}
|
}
|
||||||
|
return fmt.Errorf("unable to assign to %T", dst)
|
||||||
}
|
}
|
||||||
return (*Text)(src).AssignTo(dst)
|
case Null:
|
||||||
|
return NullAssignTo(dst)
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Errorf("cannot decode %#v into %T", src, dst)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (BPChar) PreferredResultFormat() int16 {
|
func (BPChar) PreferredResultFormat() int16 {
|
||||||
|
|
Loading…
Reference in New Issue