aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2016-01-11 11:54:29 -0800
committerBrad Fitzpatrick <bradfitz@golang.org>2016-01-13 18:15:38 +0000
commite405c29ce74bf8145f88e4ce33b292474911ce71 (patch)
tree1400553f04aedabe9ab92cc195325374d1640217
parent70ee525261f7d8adbcf58c2cf54efb7e7efb1c82 (diff)
downloadgo-e405c29ce74bf8145f88e4ce33b292474911ce71.tar.gz
go-e405c29ce74bf8145f88e4ce33b292474911ce71.zip
database/sql/driver: clarify DefaultParameterConverter docs
Fixes #11489 Change-Id: I887ebac2dcb772e73ee393891c487f694028aaf2 Reviewed-on: https://go-review.googlesource.com/18520 Reviewed-by: Russ Cox <rsc@golang.org>
-rw-r--r--src/database/sql/driver/types.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/database/sql/driver/types.go b/src/database/sql/driver/types.go
index 3305354dfd..bc54784989 100644
--- a/src/database/sql/driver/types.go
+++ b/src/database/sql/driver/types.go
@@ -200,10 +200,15 @@ func IsScanValue(v interface{}) bool {
// ValueConverter that's used when a Stmt doesn't implement
// ColumnConverter.
//
-// DefaultParameterConverter returns the given value directly if
-// IsValue(value). Otherwise integer type are converted to
-// int64, floats to float64, and strings to []byte. Other types are
-// an error.
+// DefaultParameterConverter returns its argument directly if
+// IsValue(arg). Otherwise, if the argument implements Valuer, its
+// Value method is used to return a Value. As a fallback, the provided
+// argument's underlying type is used to convert it to a Value:
+// underlying integer types are converted to int64, floats to float64,
+// and strings to []byte. If the argument is a nil pointer,
+// ConvertValue returns a nil Value. If the argument is a non-nil
+// pointer, it is dereferenced and ConvertValue is called
+// recursively. Other types are an error.
var DefaultParameterConverter defaultConverter
type defaultConverter struct{}