Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1193)

Unified Diff: go/src/infra/gae/libs/gae/prod/raw_datastore_type_converter.go

Issue 1227183003: Change RawDatastore to do less reflection. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@move_dummy
Patch Set: rebase Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: go/src/infra/gae/libs/gae/prod/raw_datastore_type_converter.go
diff --git a/go/src/infra/gae/libs/gae/prod/raw_datastore_type_converter.go b/go/src/infra/gae/libs/gae/prod/raw_datastore_type_converter.go
index 87fdce1400d00c1ff89281bc37ba9ca59c47f192..694b4c186ccf7f836e40632ddc219dbf01160064 100644
--- a/go/src/infra/gae/libs/gae/prod/raw_datastore_type_converter.go
+++ b/go/src/infra/gae/libs/gae/prod/raw_datastore_type_converter.go
@@ -5,8 +5,6 @@
package prod
import (
- "errors"
-
"infra/gae/libs/gae"
"google.golang.org/appengine"
@@ -14,13 +12,13 @@ import (
)
type typeFilter struct {
- dps gae.DSPropertyLoadSaver
+ pls gae.DSPropertyLoadSaver
}
var _ datastore.PropertyLoadSaver = &typeFilter{}
-func (tf *typeFilter) Load(props []datastore.Property) (err error) {
- newProps := map[string][]gae.DSProperty{}
+func (tf *typeFilter) Load(props []datastore.Property) error {
+ pmap := make(gae.DSPropertyMap, len(props))
for _, p := range props {
val := p.Value
switch x := val.(type) {
@@ -34,24 +32,16 @@ func (tf *typeFilter) Load(props []datastore.Property) (err error) {
val = gae.DSGeoPoint(x)
}
prop := gae.DSProperty{}
- if err = prop.SetValue(val, p.NoIndex); err != nil {
+ if err := prop.SetValue(val, p.NoIndex); err != nil {
return err
}
- newProps[p.Name] = append(newProps[p.Name], prop)
- }
- convFailures, err := tf.dps.Load(newProps)
- if err == nil && len(convFailures) > 0 {
- me := make(gae.MultiError, len(convFailures))
- for i, f := range convFailures {
- me[i] = errors.New(f)
- }
- err = me
+ pmap[p.Name] = append(pmap[p.Name], prop)
}
- return
+ return tf.pls.Load(pmap)
}
func (tf *typeFilter) Save() ([]datastore.Property, error) {
- newProps, err := tf.dps.Save()
+ newProps, err := tf.pls.Save(false)
if err != nil {
return nil, err
}

Powered by Google App Engine
This is Rietveld 408576698