|
|
@ -26,9 +26,7 @@ func (star *StarRows) setAllRefValue(stc interface{}, skey string, rows int) err
|
|
|
|
tp := t.Field(i)
|
|
|
|
tp := t.Field(i)
|
|
|
|
srFrd := v.Field(i)
|
|
|
|
srFrd := v.Field(i)
|
|
|
|
seg := tp.Tag.Get(skey)
|
|
|
|
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.Kind() == reflect.Ptr && reflect.TypeOf(srFrd.Interface()).Elem().Kind() == reflect.Struct {
|
|
|
|
if seg == "" {
|
|
|
|
if seg == "" {
|
|
|
|
continue
|
|
|
|
continue
|
|
|
@ -51,6 +49,9 @@ func (star *StarRows) setAllRefValue(stc interface{}, skey string, rows int) err
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if seg == "" {
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
}
|
|
|
|
if _, ok := star.Row(rows).columnref[seg]; !ok {
|
|
|
|
if _, ok := star.Row(rows).columnref[seg]; !ok {
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -81,10 +82,6 @@ func (star *StarRows) setAllRefValue(stc interface{}, skey string, rows int) err
|
|
|
|
v.Field(i).SetFloat(star.Row(rows).MustFloat64(seg))
|
|
|
|
v.Field(i).SetFloat(star.Row(rows).MustFloat64(seg))
|
|
|
|
case reflect.Float32:
|
|
|
|
case reflect.Float32:
|
|
|
|
v.Field(i).SetFloat(float64(star.Row(rows).MustFloat32(seg)))
|
|
|
|
v.Field(i).SetFloat(float64(star.Row(rows).MustFloat32(seg)))
|
|
|
|
case reflect.Slice, reflect.Array:
|
|
|
|
|
|
|
|
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:
|
|
|
|
case reflect.Interface, reflect.Struct, reflect.Ptr:
|
|
|
|
inf := star.Row(rows).Result[star.columnref[seg]]
|
|
|
|
inf := star.Row(rows).Result[star.columnref[seg]]
|
|
|
|
switch vtype := inf.(type) {
|
|
|
|
switch vtype := inf.(type) {
|
|
|
@ -137,9 +134,6 @@ func getAllRefValue(stc interface{}, skey string) (map[string]interface{}, error
|
|
|
|
tp := t.Field(i)
|
|
|
|
tp := t.Field(i)
|
|
|
|
srFrd := v.Field(i)
|
|
|
|
srFrd := v.Field(i)
|
|
|
|
seg := tp.Tag.Get(skey)
|
|
|
|
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.Kind() == reflect.Ptr && reflect.TypeOf(srFrd.Interface()).Elem().Kind() == reflect.Struct {
|
|
|
|
if srFrd.IsNil() {
|
|
|
|
if srFrd.IsNil() {
|
|
|
|
continue
|
|
|
|
continue
|
|
|
@ -198,9 +192,6 @@ func getAllRefKey(stc interface{}, skey string) ([]string, error) {
|
|
|
|
srFrd := v.Field(i)
|
|
|
|
srFrd := v.Field(i)
|
|
|
|
profile := t.Field(i)
|
|
|
|
profile := t.Field(i)
|
|
|
|
seg := profile.Tag.Get(skey)
|
|
|
|
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.Kind() == reflect.Ptr && reflect.TypeOf(srFrd.Interface()).Elem().Kind() == reflect.Struct {
|
|
|
|
if srFrd.IsNil() {
|
|
|
|
if srFrd.IsNil() {
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|