From a8f6674a07b2c582e35ccdfc96c6b2dec5fb0669 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Sat, 26 Feb 2022 20:28:15 -0600 Subject: [PATCH] TextCodec specifically supports scanning to BytesScanner This lets it support DriverBytes and PreallocatedBytes. --- pgtype/text.go | 9 +++++++++ 1 file changed, 9 insertions(+) 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 {