Chromium Code Reviews| Index: go/src/infra/gae/libs/wrapper/memory/datastore.go | 
| diff --git a/go/src/infra/gae/libs/wrapper/memory/datastore.go b/go/src/infra/gae/libs/wrapper/memory/datastore.go | 
| index 9573d7b46cd78f24eab1ef12300043ea9ef1effa..df76d6ad96975ba51a2d28d8319a3d936600d7c0 100644 | 
| --- a/go/src/infra/gae/libs/wrapper/memory/datastore.go | 
| +++ b/go/src/infra/gae/libs/wrapper/memory/datastore.go | 
| @@ -116,6 +116,32 @@ var ( | 
| _ = wrapper.Testable((*txnDsImpl)(nil)) | 
| ) | 
| +func (d *dsImpl) NewQuery(kind string) wrapper.DSQuery { | 
| + return &queryImpl{DSQuery: wrapper.DummyQY(), ns: d.ns, kind: kind} | 
| +} | 
| + | 
| +func (d *dsImpl) Run(q wrapper.DSQuery) wrapper.DSIterator { | 
| + rq := q.(*queryImpl) | 
| + rq = rq.normalize().checkCorrectness(d.ns, false) | 
| 
 
M-A Ruel
2015/05/31 23:03:15
return &queryIterImp{q.(*queryImpl).normalize().ch
 
iannucci
2015/05/31 23:31:33
I think I had that originally and it seemed too li
 
 | 
| + return &queryIterImpl{rq} | 
| +} | 
| + | 
| +func (d *dsImpl) GetAll(q wrapper.DSQuery, dst interface{}) ([]*datastore.Key, error) { | 
| + // TODO(riannucci): assert that dst is a slice of structs | 
| + return nil, nil | 
| +} | 
| + | 
| +func (d *dsImpl) Count(q wrapper.DSQuery) (ret int, err error) { | 
| + itr := d.Run(q.KeysOnly()) | 
| + for _, err = itr.Next(nil); err != nil; _, err = itr.Next(nil) { | 
| + ret++ | 
| + } | 
| + if err == datastore.Done { | 
| + err = nil | 
| + } | 
| + return | 
| +} | 
| + | 
| func (d *txnDsImpl) BreakFeatures(err error, features ...string) { | 
| d.data.BreakFeatures(err, features...) | 
| } |