diff options
Diffstat (limited to 'src/database/sql/sql.go')
| -rw-r--r-- | src/database/sql/sql.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go index 4be450ca87..85b9ffc37d 100644 --- a/src/database/sql/sql.go +++ b/src/database/sql/sql.go @@ -3396,7 +3396,16 @@ func (rs *Rows) scanLocked(dest ...any) error { } for i, sv := range rs.lastcols { - err := convertAssignRows(dest[i], sv, rs) + err := driver.ErrSkip + + if rcs, ok := rs.rowsi.(driver.RowsColumnScanner); ok { + err = rcs.ScanColumn(dest[i], i) + } + + if err == driver.ErrSkip { + err = convertAssignRows(dest[i], sv, rs) + } + if err != nil { return fmt.Errorf(`sql: Scan error on column index %d, name %q: %w`, i, rs.rowsi.Columns()[i], err) } |
