mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
database/sql: support scanning into user defined string types
User defined numeric types such as "type Int int64" have been able to be scanned into without a custom scanner by using the reflect scan code path used to convert between various numeric types. Add in a path for string types for symmetry and least surprise. Fixes #18101 Change-Id: I00553bcf021ffe6d95047eca0067ee94b54ff501 Reviewed-on: https://go-review.googlesource.com/39031 Run-TryBot: Daniel Theophanes <kardianos@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
bfd8093c96
commit
5a45a157f2
3 changed files with 42 additions and 3 deletions
|
|
@ -3155,6 +3155,24 @@ func TestPing(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// Issue 18101.
|
||||
func TestTypedString(t *testing.T) {
|
||||
db := newTestDB(t, "people")
|
||||
defer closeDB(t, db)
|
||||
|
||||
type Str string
|
||||
var scanned Str
|
||||
|
||||
err := db.QueryRow("SELECT|people|name|name=?", "Alice").Scan(&scanned)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
expected := Str("Alice")
|
||||
if scanned != expected {
|
||||
t.Errorf("expected %+v, got %+v", expected, scanned)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkConcurrentDBExec(b *testing.B) {
|
||||
b.ReportAllocs()
|
||||
ct := new(concurrentDBExecTest)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue