From 63166253ba86b103dd76ee0c25ef930eb42afc19 Mon Sep 17 00:00:00 2001 From: John Guo Date: Thu, 9 Jan 2025 14:05:56 +0800 Subject: [PATCH] up --- database/gdb/gdb_core_underlying.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/database/gdb/gdb_core_underlying.go b/database/gdb/gdb_core_underlying.go index 40d40c7d2..7c0bddbe3 100644 --- a/database/gdb/gdb_core_underlying.go +++ b/database/gdb/gdb_core_underlying.go @@ -466,7 +466,7 @@ func (c *Core) RowsToResult(ctx context.Context, rows *sql.Rows) (Result, error) if convertedValue, err = c.columnValueToLocalValue(ctx, value, columnType); err != nil { return nil, err } - localType, err = c.getLocalTypeForFieldWithCache(ctx, columnType.DatabaseTypeName()) + localType, err = c.getLocalTypeForFieldWithCache(ctx, columnType.DatabaseTypeName(), convertedValue) if err != nil { return nil, err } @@ -481,9 +481,11 @@ func (c *Core) RowsToResult(ctx context.Context, rows *sql.Rows) (Result, error) return result, nil } -func (c *Core) getLocalTypeForFieldWithCache(ctx context.Context, fieldType string) (localType LocalType, err error) { - v := c.localTypeMap.GetOrSetFuncLock(fieldType, func() interface{} { - localType, err = c.db.CheckLocalTypeForField(ctx, fieldType, nil) +func (c *Core) getLocalTypeForFieldWithCache( + ctx context.Context, fieldType string, fieldValue any, +) (localType LocalType, err error) { + v := c.localTypeMap.GetOrSetFuncLock(fieldType, func() any { + localType, err = c.db.CheckLocalTypeForField(ctx, fieldType, fieldValue) if err != nil { return nil }