Index: impl/memory/datastore_query_execution.go |
diff --git a/impl/memory/datastore_query_execution.go b/impl/memory/datastore_query_execution.go |
index 758f7933f6749f21b94d43cbcff0b05659650edd..4dd99d25a250339bde093c129ad2eee61a982c79 100644 |
--- a/impl/memory/datastore_query_execution.go |
+++ b/impl/memory/datastore_query_execution.go |
@@ -163,6 +163,20 @@ func parseSuffix(ns string, suffixFormat []ds.IndexColumn, suffix []byte, count |
return |
} |
+func countQuery(fq *ds.FinalizedQuery, ns string, isTxn bool, idx, head *memStore) (ret int64, err error) { |
+ if len(fq.Project()) == 0 && !fq.KeysOnly() { |
+ fq, err = fq.Original().KeysOnly(true).Finalize() |
+ if err != nil { |
+ return |
+ } |
+ } |
+ err = executeQuery(fq, ns, isTxn, idx, head, func(_ *ds.Key, _ ds.PropertyMap, _ ds.CursorCB) bool { |
+ ret++ |
+ return true |
+ }) |
+ return |
+} |
+ |
func executeQuery(fq *ds.FinalizedQuery, ns string, isTxn bool, idx, head *memStore, cb ds.RawRunCB) error { |
rq, err := reduce(fq, ns, isTxn) |
if err == ds.ErrNullQuery { |