Index: impl/memory/datastore_index.go |
diff --git a/impl/memory/datastore_index.go b/impl/memory/datastore_index.go |
index 1fb4c0ea95727ee1cdd0becb7c4e788d7ed4ac53..f22a970a8e9ef62593c2b60be332c08bd98086b6 100644 |
--- a/impl/memory/datastore_index.go |
+++ b/impl/memory/datastore_index.go |
@@ -10,6 +10,7 @@ import ( |
"sort" |
ds "github.com/luci/gae/service/datastore" |
+ "github.com/luci/gae/service/datastore/serialize" |
"github.com/luci/gkvlite" |
) |
@@ -73,7 +74,7 @@ func partiallySerialize(pm ds.PropertyMap) (ret serializedIndexablePmap) { |
continue |
} |
buf.Reset() |
- v.Write(buf, ds.WithoutContext) |
+ serialize.WriteProperty(buf, serialize.WithoutContext, v) |
newVal := make([]byte, buf.Len()) |
copy(newVal, buf.Bytes()) |
newVals = append(newVals, newVal) |
@@ -183,16 +184,12 @@ func (sip serializedIndexablePmap) indexEntries(k ds.Key, idxs []*ds.IndexDefini |
idxColl := ret.SetCollection("idx", nil) |
// getIdxEnts retrieves an index collection or adds it if it's not there. |
getIdxEnts := func(qi *ds.IndexDefinition) *memCollection { |
- buf := &bytes.Buffer{} |
- qi.Write(buf) |
- b := buf.Bytes() |
+ b := serialize.ToBytes(*qi) |
idxColl.Set(b, []byte{}) |
return ret.SetCollection(fmt.Sprintf("idx:%s:%s", k.Namespace(), b), nil) |
} |
- buf := &bytes.Buffer{} |
- ds.WriteKey(buf, ds.WithoutContext, k) |
- keyData := buf.Bytes() |
+ keyData := serialize.ToBytes(k) |
walkPermutations := func(prefix []byte, irg indexRowGen, ents *memCollection) { |
prev := []byte{} // intentionally make a non-nil slice, gkvlite hates nil. |
@@ -214,9 +211,7 @@ func (sip serializedIndexablePmap) indexEntries(k ds.Key, idxs []*ds.IndexDefini |
idxEnts.Set(keyData, []byte{}) // propless index, e.g. kind -> key = nil |
} else if idx.Ancestor { |
for ancKey := k; ancKey != nil; ancKey = ancKey.Parent() { |
- buf := &bytes.Buffer{} |
- ds.WriteKey(buf, ds.WithoutContext, ancKey) |
- walkPermutations(buf.Bytes(), irg, idxEnts) |
+ walkPermutations(serialize.ToBytes(ancKey), irg, idxEnts) |
} |
} else { |
walkPermutations(nil, irg, idxEnts) |
@@ -235,11 +230,11 @@ func getCompIdxs(idxColl *memCollection) []*ds.IndexDefinition { |
if !bytes.HasPrefix(i.Key, complexQueryPrefix) { |
return false |
} |
- qi := &ds.IndexDefinition{} |
- if err := qi.Read(bytes.NewBuffer(i.Key)); err != nil { |
+ qi, err := serialize.ReadIndexDefinition(bytes.NewBuffer(i.Key)) |
+ if err != nil { |
panic(err) // memory corruption |
} |
- compIdx = append(compIdx, qi) |
+ compIdx = append(compIdx, &qi) |
return true |
}) |
return compIdx |
@@ -304,7 +299,7 @@ func addIndex(store *memStore, ns string, compIdx []*ds.IndexDefinition) { |
if err != nil { |
panic(err) // memory corruption |
} |
- k, err := ds.ReadKey(bytes.NewBuffer(i.Key), ds.WithoutContext, globalAppID, ns) |
+ k, err := serialize.ReadKey(bytes.NewBuffer(i.Key), serialize.WithoutContext, globalAppID, ns) |
if err != nil { |
panic(err) |
} |