aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/driver
diff options
context:
space:
mode:
authoraimuz <mr.imuz@gmail.com>2024-02-21 02:15:40 +0000
committerGopher Robot <gobot@golang.org>2024-02-27 16:30:20 +0000
commitd8311c86239eebe36e9882760297fd85197add3c (patch)
tree59281f91d8f4624b7e237039f70fd6ce3bde4381 /src/database/sql/driver
parent856355a9133a3c96efcd35f355637d33c9fde7ea (diff)
downloadgo-d8311c86239eebe36e9882760297fd85197add3c.tar.xz
database/sql: wrap errors with %w in driverArgsConnLocked
Use fmt.Errorf %w verb to wrap errors in driverArgsConnLocked, which allows for easier unwrapping and checking of error types. Add tests in sql_test.go to ensure that Stmt.Exec and Stmt.Query correctly wrap underlying Valuer errors, adhering to the new change. Fixes #64707. Change-Id: Id9f80e265735d0849ee7abba63e58e4c26e658ad GitHub-Last-Rev: 0df367e0fb5b213513d4e0ab7f5a87984798f96d GitHub-Pull-Request: golang/go#64728 Reviewed-on: https://go-review.googlesource.com/c/go/+/550116 Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com> Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/database/sql/driver')
-rw-r--r--src/database/sql/driver/types.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/database/sql/driver/types.go b/src/database/sql/driver/types.go
index 0380572ab1..a322f85277 100644
--- a/src/database/sql/driver/types.go
+++ b/src/database/sql/driver/types.go
@@ -34,6 +34,10 @@ type ValueConverter interface {
// Valuer is the interface providing the Value method.
//
+// Errors returned by the [Value] method are wrapped by the database/sql package.
+// This allows callers to use [errors.Is] for precise error handling after operations
+// like [database/sql.Query], [database/sql.Exec], or [database/sql.QueryRow].
+//
// Types implementing Valuer interface are able to convert
// themselves to a driver [Value].
type Valuer interface {