aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/sql.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/sql/sql.go')
-rw-r--r--src/database/sql/sql.go11
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)
}