| 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..694722f361d401a6af84b39e213d39c30a0fb755 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,20 @@ 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 {
|
| - return err
|
| + is := gae.ShouldIndex
|
| + if p.NoIndex {
|
| + is = gae.NoIndex
|
| }
|
| - 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)
|
| + if err := prop.SetValue(val, is); err != nil {
|
| + return err
|
| }
|
| - 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
|
| }
|
| @@ -63,7 +57,7 @@ func (tf *typeFilter) Save() ([]datastore.Property, error) {
|
| toAdd := datastore.Property{
|
| Name: name,
|
| Multiple: multiple,
|
| - NoIndex: prop.NoIndex(),
|
| + NoIndex: prop.IndexSetting() == gae.NoIndex,
|
| }
|
| switch x := prop.Value().(type) {
|
| case gae.DSByteString:
|
|
|