From 8da7706bb4dc609689fd69e196ddaa800908c31f Mon Sep 17 00:00:00 2001 From: HaraldNordgren Date: Sun, 7 Jan 2018 15:08:59 +0100 Subject: database/sql: include SQL column name in Scan() error message When 'convertAssign' gives an error, instead of giving just the index of the failing column -- which is not always helpful, especially when there are lots of columns in the query -- utilize 'rs.rowsi.Columns()' to extract the underlying column name and include that in the error string: sql: Scan error on column index 0, name "some_column": ... Fixes #23362 Change-Id: I0fe71ff3c25f4c0dd9fc6aa2c2da2360dd93e3e0 Reviewed-on: https://go-review.googlesource.com/86537 Reviewed-by: Harald Nordgren Reviewed-by: Daniel Theophanes Run-TryBot: Daniel Theophanes TryBot-Result: Gobot Gobot --- src/database/sql/sql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/database/sql/sql.go') diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go index 8f5588ed26..a6fa153d94 100644 --- a/src/database/sql/sql.go +++ b/src/database/sql/sql.go @@ -2885,7 +2885,7 @@ func (rs *Rows) Scan(dest ...interface{}) error { for i, sv := range rs.lastcols { err := convertAssign(dest[i], sv) if err != nil { - return fmt.Errorf("sql: Scan error on column index %d: %v", i, err) + return fmt.Errorf(`sql: Scan error on column index %d, name %q: %v`, i, rs.rowsi.Columns()[i], err) } } return nil -- cgit v1.3