diff options
Diffstat (limited to 'src/database/sql')
| -rw-r--r-- | src/database/sql/badlinkname.go | 15 | ||||
| -rw-r--r-- | src/database/sql/convert.go | 11 |
2 files changed, 11 insertions, 15 deletions
diff --git a/src/database/sql/badlinkname.go b/src/database/sql/badlinkname.go deleted file mode 100644 index 95a2354afd..0000000000 --- a/src/database/sql/badlinkname.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sql - -import _ "unsafe" - -// As of Go 1.22, the symbols below are found to be pulled via -// linkname in the wild. We provide a push linkname here, to -// keep them accessible with pull linknames. -// This may change in the future. Please do not depend on them -// in new code. - -//go:linkname convertAssign diff --git a/src/database/sql/convert.go b/src/database/sql/convert.go index 8f71d5b867..c261046b18 100644 --- a/src/database/sql/convert.go +++ b/src/database/sql/convert.go @@ -16,6 +16,7 @@ import ( "time" "unicode" "unicode/utf8" + _ "unsafe" // for linkname ) var errNilPtr = errors.New("destination pointer is nil") // embedded in descriptive error @@ -207,6 +208,16 @@ func driverArgsConnLocked(ci driver.Conn, ds *driverStmt, args []any) ([]driver. // convertAssign is the same as convertAssignRows, but without the optional // rows argument. +// +// convertAssign should be an internal detail, +// but widely used packages access it using linkname. +// Notable members of the hall of shame include: +// - ariga.io/entcache +// +// Do not remove or change the type signature. +// See go.dev/issue/67401. +// +//go:linkname convertAssign func convertAssign(dest, src any) error { return convertAssignRows(dest, src, nil) } |
