TextCodec specifically supports scanning to BytesScanner

This lets it support DriverBytes and PreallocatedBytes.
query-exec-mode
Jack Christensen 2022-02-26 20:28:15 -06:00
parent ffc5a692cb
commit a8f6674a07
1 changed files with 9 additions and 0 deletions

View File

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