diff options
author | 2024-11-08 13:51:23 +0000 | |
---|---|---|
committer | 2024-11-08 13:51:23 +0000 | |
commit | 29007b1b886e7455ece5aa6e4d477805209fad88 (patch) | |
tree | 21b11cbf12faf71d44d43c61a2d4916b7bd82b80 /vendor/github.com/uptrace/bun/schema/scan.go | |
parent | bump ncruces/go-sqlite3 to v0.20.2 (#3524) (diff) | |
download | gotosocial-29007b1b886e7455ece5aa6e4d477805209fad88.tar.xz |
[chore] update bun libraries to v1.2.5 (#3528)
* update bun libraries to v1.2.5
* pin old v1.29.0 of otel
Diffstat (limited to 'vendor/github.com/uptrace/bun/schema/scan.go')
-rw-r--r-- | vendor/github.com/uptrace/bun/schema/scan.go | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/vendor/github.com/uptrace/bun/schema/scan.go b/vendor/github.com/uptrace/bun/schema/scan.go index 96b31caf3..4da160daf 100644 --- a/vendor/github.com/uptrace/bun/schema/scan.go +++ b/vendor/github.com/uptrace/bun/schema/scan.go @@ -8,9 +8,9 @@ import ( "reflect" "strconv" "strings" - "sync" "time" + "github.com/puzpuzpuz/xsync/v3" "github.com/vmihailenco/msgpack/v5" "github.com/uptrace/bun/dialect/sqltype" @@ -53,7 +53,7 @@ func init() { } } -var scannerMap sync.Map +var scannerCache = xsync.NewMapOf[reflect.Type, ScannerFunc]() func FieldScanner(dialect Dialect, field *Field) ScannerFunc { if field.Tag.HasOption("msgpack") { @@ -72,14 +72,14 @@ func FieldScanner(dialect Dialect, field *Field) ScannerFunc { } func Scanner(typ reflect.Type) ScannerFunc { - if v, ok := scannerMap.Load(typ); ok { - return v.(ScannerFunc) + if v, ok := scannerCache.Load(typ); ok { + return v } fn := scanner(typ) - if v, ok := scannerMap.LoadOrStore(typ, fn); ok { - return v.(ScannerFunc) + if v, ok := scannerCache.LoadOrStore(typ, fn); ok { + return v } return fn } @@ -111,7 +111,7 @@ func scanner(typ reflect.Type) ScannerFunc { } if kind != reflect.Ptr { - ptr := reflect.PtrTo(typ) + ptr := reflect.PointerTo(typ) if ptr.Implements(scannerType) { return addrScanner(scanScanner) } |