aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/sql')
-rw-r--r--src/database/sql/badlinkname.go15
-rw-r--r--src/database/sql/convert.go11
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)
}