diff --git a/scan.go b/scan.go index fa1b4caa..f28440a3 100644 --- a/scan.go +++ b/scan.go @@ -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 { values[idx] = field.NewScanValue() 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 field := rel.FieldSchema.LookUpField(strings.Join(names[1:], "__")); field != nil && field.Readable { values[idx] = field.NewScanValue() diff --git a/schema/field.go b/schema/field.go index 7ecf0761..9cd840cb 100644 --- a/schema/field.go +++ b/schema/field.go @@ -424,9 +424,6 @@ var ( bytesPoolReleaser = func(v interface{}) { bs := v.(*[]byte) *bs = (*bs)[:0] - if string(*bs) != "" { - fmt.Println(string(*bs)) - } bytesPool.Put(bs) } ) @@ -434,8 +431,8 @@ var ( // create valuer, setter when parse struct func (field *Field) setupValuerAndSetter() { // Setup NewScanValue - switch field.DataType { - case Bytes, String: + switch field.IndirectFieldType.Kind() { + case reflect.String: field.NewScanValue = bytesPool.Get field.ReleaseScanValue = bytesPoolReleaser default: