This commit is contained in:
Jinzhu 2022-02-14 23:26:09 +08:00
parent 07f0438435
commit 7e37f3ad75
2 changed files with 3 additions and 6 deletions

View File

@ -57,7 +57,7 @@ func (db *DB) scanIntoStruct(sch *schema.Schema, rows *sql.Rows, reflectValue re
} else if field := sch.LookUpField(column); field != nil && field.Readable { } else if field := sch.LookUpField(column); field != nil && field.Readable {
values[idx] = field.NewScanValue() values[idx] = field.NewScanValue()
defer field.ReleaseScanValue(values[idx]) defer field.ReleaseScanValue(values[idx])
} else if names := strings.Split(column, "__"); len(names) > 2 { } else if names := strings.Split(column, "__"); len(names) > 1 {
if rel, ok := sch.Relationships.Relations[names[0]]; ok { if rel, ok := sch.Relationships.Relations[names[0]]; ok {
if field := rel.FieldSchema.LookUpField(strings.Join(names[1:], "__")); field != nil && field.Readable { if field := rel.FieldSchema.LookUpField(strings.Join(names[1:], "__")); field != nil && field.Readable {
values[idx] = field.NewScanValue() values[idx] = field.NewScanValue()

View File

@ -424,9 +424,6 @@ var (
bytesPoolReleaser = func(v interface{}) { bytesPoolReleaser = func(v interface{}) {
bs := v.(*[]byte) bs := v.(*[]byte)
*bs = (*bs)[:0] *bs = (*bs)[:0]
if string(*bs) != "" {
fmt.Println(string(*bs))
}
bytesPool.Put(bs) bytesPool.Put(bs)
} }
) )
@ -434,8 +431,8 @@ var (
// create valuer, setter when parse struct // create valuer, setter when parse struct
func (field *Field) setupValuerAndSetter() { func (field *Field) setupValuerAndSetter() {
// Setup NewScanValue // Setup NewScanValue
switch field.DataType { switch field.IndirectFieldType.Kind() {
case Bytes, String: case reflect.String:
field.NewScanValue = bytesPool.Get field.NewScanValue = bytesPool.Get
field.ReleaseScanValue = bytesPoolReleaser field.ReleaseScanValue = bytesPoolReleaser
default: default: