Compare commits

..

1 Commits

Author SHA1 Message Date
兔子 198f3ebb5d bug fix 2 years ago

@ -26,7 +26,9 @@ func (star *StarRows) setAllRefValue(stc interface{}, skey string, rows int) err
tp := t.Field(i)
srFrd := v.Field(i)
seg := tp.Tag.Get(skey)
if seg == "" && !tp.IsExported() {
continue
}
if srFrd.Kind() == reflect.Ptr && reflect.TypeOf(srFrd.Interface()).Elem().Kind() == reflect.Struct {
if seg == "" {
continue
@ -49,9 +51,6 @@ func (star *StarRows) setAllRefValue(stc interface{}, skey string, rows int) err
continue
}
}
if seg == "" {
continue
}
if _, ok := star.Row(rows).columnref[seg]; !ok {
continue
}
@ -83,7 +82,7 @@ func (star *StarRows) setAllRefValue(stc interface{}, skey string, rows int) err
case reflect.Float32:
v.Field(i).SetFloat(float64(star.Row(rows).MustFloat32(seg)))
case reflect.Slice, reflect.Array:
if v.Field(i).Elem().Kind() == reflect.Uint8 {
if t.Field(i).Type.Elem().Kind() == reflect.Uint8 {
v.Field(i).SetBytes(star.Row(rows).MustBytes(seg))
}
case reflect.Interface, reflect.Struct, reflect.Ptr:
@ -138,6 +137,9 @@ func getAllRefValue(stc interface{}, skey string) (map[string]interface{}, error
tp := t.Field(i)
srFrd := v.Field(i)
seg := tp.Tag.Get(skey)
if seg == "" && !tp.IsExported() {
continue
}
if srFrd.Kind() == reflect.Ptr && reflect.TypeOf(srFrd.Interface()).Elem().Kind() == reflect.Struct {
if srFrd.IsNil() {
continue
@ -196,6 +198,9 @@ func getAllRefKey(stc interface{}, skey string) ([]string, error) {
srFrd := v.Field(i)
profile := t.Field(i)
seg := profile.Tag.Get(skey)
if seg == "" && !profile.IsExported() {
continue
}
if srFrd.Kind() == reflect.Ptr && reflect.TypeOf(srFrd.Interface()).Elem().Kind() == reflect.Struct {
if srFrd.IsNil() {
continue

Loading…
Cancel
Save