Index: impl/prod/raw_datastore.go |
diff --git a/impl/prod/raw_datastore.go b/impl/prod/raw_datastore.go |
index 7eadfe3d2b080551765643cb0c7e8cf14332bc5c..9543ecc26ea490516f5a154a3078d5746ddc3408 100644 |
--- a/impl/prod/raw_datastore.go |
+++ b/impl/prod/raw_datastore.go |
@@ -182,7 +182,6 @@ func (d rdsImpl) DecodeCursor(s string) (ds.Cursor, error) { |
} |
func (d rdsImpl) Run(fq *ds.FinalizedQuery, cb ds.RawRunCB) error { |
- tf := typeFilter{} |
q, err := d.fixQuery(fq) |
if err != nil { |
return err |
@@ -193,6 +192,7 @@ func (d rdsImpl) Run(fq *ds.FinalizedQuery, cb ds.RawRunCB) error { |
cfunc := func() (ds.Cursor, error) { |
return t.Cursor() |
} |
+ tf := typeFilter{} |
for { |
k, err := t.Next(&tf) |
if err == datastore.Done { |
@@ -207,6 +207,15 @@ func (d rdsImpl) Run(fq *ds.FinalizedQuery, cb ds.RawRunCB) error { |
} |
} |
+func (d rdsImpl) Count(fq *ds.FinalizedQuery) (int64, error) { |
+ q, err := d.fixQuery(fq) |
+ if err != nil { |
+ return 0, err |
+ } |
+ ret, err := q.Count(d) |
+ return int64(ret), err |
+} |
+ |
func (d rdsImpl) RunInTransaction(f func(c context.Context) error, opts *ds.TransactionOptions) error { |
ropts := (*datastore.TransactionOptions)(opts) |
return datastore.RunInTransaction(d, f, ropts) |