database/sql/driver: document Valuer must not panic

While it is possible for the connection pool to guard against panics
on every valuer read, this seems like a high cost to be added,
in both code complexity and possible runtime performance.

Most uses of the Valuer will be trivial, like returning
a struct field. Optimize for that case. If sometime may panic the
valuer should itself use recover and return an error.

Fixes #26332

Change-Id: Iad18780b8028f669f5a7841b74a5384d62fb6a7e
Reviewed-on: https://go-review.googlesource.com/c/go/+/170700
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/database/sql/driver/types.go b/src/database/sql/driver/types.go
index 8b3cb6c..64b41fa 100644
--- a/src/database/sql/driver/types.go
+++ b/src/database/sql/driver/types.go
@@ -38,6 +38,7 @@
 // themselves to a driver Value.
 type Valuer interface {
 	// Value returns a driver Value.
+	// Value must not panic.
 	Value() (Value, error)
 }