diff --git a/pgtype/text.go b/pgtype/text.go index 82e7753c..53fcb368 100644 --- a/pgtype/text.go +++ b/pgtype/text.go @@ -165,6 +165,8 @@ func (TextCodec) PlanScan(m *Map, oid uint32, format int16, target interface{}) return scanPlanTextAnyToString{} case *[]byte: return scanPlanAnyToNewByteSlice{} + case BytesScanner: + return scanPlanAnyToByteScanner{} case TextScanner: return scanPlanTextAnyToTextScanner{} case *rune: @@ -214,6 +216,13 @@ func (scanPlanAnyToNewByteSlice) Scan(src []byte, dst interface{}) error { return nil } +type scanPlanAnyToByteScanner struct{} + +func (scanPlanAnyToByteScanner) Scan(src []byte, dst interface{}) error { + p := (dst).(BytesScanner) + return p.ScanBytes(src) +} + type scanPlanTextAnyToRune struct{} func (scanPlanTextAnyToRune) Scan(src []byte, dst interface{}) error {