]> Cypherpunks repositories - gostls13.git/commitdiff
database/sql: scan into *time.Time without reflection
authorDaniel Theophanes <kardianos@gmail.com>
Wed, 25 Oct 2017 18:01:46 +0000 (11:01 -0700)
committerDaniel Theophanes <kardianos@gmail.com>
Wed, 25 Oct 2017 19:29:16 +0000 (19:29 +0000)
Previously scanning time.Time into a *time.Time required reflection.
Now it does not. Scanning already checked if the source value was of
type time.Time. The only addition was checking the destination was
of type *time.Time.

Existing tests already scan time.Time into *time.Time, so no new
tests were added. Linked issue has performance justification.

Fixes #22300

Change-Id: I4eea461c78fad71ce76e7677c8503a1919666931
Reviewed-on: https://go-review.googlesource.com/73232
Run-TryBot: Daniel Theophanes <kardianos@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/database/sql/convert.go

index b44bed559d5a597b0644d5e3dc8de87512cd846a..b79ec3f7b2711e9b57dc1973d1928d8e56323d21 100644 (file)
@@ -259,6 +259,9 @@ func convertAssign(dest, src interface{}) error {
                }
        case time.Time:
                switch d := dest.(type) {
+               case *time.Time:
+                       *d = s
+                       return nil
                case *string:
                        *d = s.Format(time.RFC3339Nano)
                        return nil