mirror of
https://github.com/astaxie/beego.git
synced 2024-11-25 19:30:54 +00:00
Merge pull request #3519 from zav8/add_support_for_pointer_fields
add support for pointer fields of structs to method QueryRows()
This commit is contained in:
commit
280aaf9d3b
@ -191,6 +191,14 @@ func (o *rawSet) setFieldValue(ind reflect.Value, value interface{}) {
|
|||||||
ind.Set(reflect.Indirect(reflect.ValueOf(sc)))
|
ind.Set(reflect.Indirect(reflect.ValueOf(sc)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case reflect.Ptr:
|
||||||
|
if value == nil {
|
||||||
|
ind.Set(reflect.Zero(ind.Type()))
|
||||||
|
break
|
||||||
|
}
|
||||||
|
ind.Set(reflect.New(ind.Type().Elem()))
|
||||||
|
o.setFieldValue(reflect.Indirect(ind), value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -458,6 +458,15 @@ func TestNullDataTypes(t *testing.T) {
|
|||||||
throwFail(t, AssertIs((*d.TimePtr).UTC().Format(testTime), timePtr.UTC().Format(testTime)))
|
throwFail(t, AssertIs((*d.TimePtr).UTC().Format(testTime), timePtr.UTC().Format(testTime)))
|
||||||
throwFail(t, AssertIs((*d.DatePtr).UTC().Format(testDate), datePtr.UTC().Format(testDate)))
|
throwFail(t, AssertIs((*d.DatePtr).UTC().Format(testDate), datePtr.UTC().Format(testDate)))
|
||||||
throwFail(t, AssertIs((*d.DateTimePtr).UTC().Format(testDateTime), dateTimePtr.UTC().Format(testDateTime)))
|
throwFail(t, AssertIs((*d.DateTimePtr).UTC().Format(testDateTime), dateTimePtr.UTC().Format(testDateTime)))
|
||||||
|
|
||||||
|
// test support for pointer fields using RawSeter.QueryRows()
|
||||||
|
var dnList []*DataNull
|
||||||
|
Q := dDbBaser.TableQuote()
|
||||||
|
num, err = dORM.Raw(fmt.Sprintf("SELECT * FROM %sdata_null%s where id=?", Q, Q), 3).QueryRows(&dnList)
|
||||||
|
throwFailNow(t, err)
|
||||||
|
throwFailNow(t, AssertIs(num, 1))
|
||||||
|
equal := reflect.DeepEqual(*dnList[0], d)
|
||||||
|
throwFailNow(t, AssertIs(equal, true))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDataCustomTypes(t *testing.T) {
|
func TestDataCustomTypes(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user