database/sql: allocate once when assigning a time.Time to a byte slice

Change convertAssignRows to use time.AppendFormat and a pre-allocated
buffer when assigning a time.Time to a byte slice. Previously, the
result of time.Format was converted to a byte slice which required
two allocations.

Change-Id: I19db5e4d295e882070f947eca318a4e33520cda1
Reviewed-on: https://go-review.googlesource.com/c/go/+/622597
Reviewed-by: Carlos Amedee <carlos@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
Charlie Vieth 2024-10-26 18:59:47 -04:00 committed by Gopher Robot
parent 851ebc2dca
commit ff86b8b62f
1 changed files with 1 additions and 1 deletions

View File

@ -290,7 +290,7 @@ func convertAssignRows(dest, src any, rows *Rows) error {
if d == nil {
return errNilPtr
}
*d = []byte(s.Format(time.RFC3339Nano))
*d = s.AppendFormat(make([]byte, 0, len(time.RFC3339Nano)), time.RFC3339Nano)
return nil
case *RawBytes:
if d == nil {