@@ -272,7 +272,7 @@ func (rows *baseRows) Scan(dest ...any) error {
272
272
273
273
err := rows .scanPlans [i ].Scan (values [i ], dst )
274
274
if err != nil {
275
- err = ScanArgError {ColumnIndex : i , Err : err }
275
+ err = ScanArgError {ColumnIndex : i , FieldName : & fieldDescriptions [ i ]. Name , Err : err }
276
276
rows .fatal (err )
277
277
return err
278
278
}
@@ -334,11 +334,16 @@ func (rows *baseRows) Conn() *Conn {
334
334
335
335
type ScanArgError struct {
336
336
ColumnIndex int
337
+ FieldName * string
337
338
Err error
338
339
}
339
340
340
341
func (e ScanArgError ) Error () string {
341
- return fmt .Sprintf ("can't scan into dest[%d]: %v" , e .ColumnIndex , e .Err )
342
+ msg := fmt .Sprintf ("can't scan into dest[%d]: %v" , e .ColumnIndex , e .Err )
343
+ if e .FieldName != nil {
344
+ msg = fmt .Sprintf ("can't scan into dest[%d] (%s): %v" , e .ColumnIndex , * e .FieldName , e .Err )
345
+ }
346
+ return msg
342
347
}
343
348
344
349
func (e ScanArgError ) Unwrap () error {
@@ -366,7 +371,7 @@ func ScanRow(typeMap *pgtype.Map, fieldDescriptions []pgconn.FieldDescription, v
366
371
367
372
err := typeMap .Scan (fieldDescriptions [i ].DataTypeOID , fieldDescriptions [i ].Format , values [i ], d )
368
373
if err != nil {
369
- return ScanArgError {ColumnIndex : i , Err : err }
374
+ return ScanArgError {ColumnIndex : i , FieldName : & fieldDescriptions [ i ]. Name , Err : err }
370
375
}
371
376
}
372
377
0 commit comments