From 777d545f4ac03adb8f49b802e01eecb46a345593 Mon Sep 17 00:00:00 2001 From: Benjamin Saller Date: Mon, 16 Jul 2007 15:48:22 +0000 Subject: temporary limit/offset fix --- diff --git a/src/olpc/datastore/backingstore.py b/src/olpc/datastore/backingstore.py index cc8c6c4..fd7ca2f 100644 --- a/src/olpc/datastore/backingstore.py +++ b/src/olpc/datastore/backingstore.py @@ -380,6 +380,7 @@ class FileBackingStore(BackingStore): def find(self, query): limit = query.pop('limit', 50) offset = query.pop('offset', 0) + return self.indexmanager.search(query, offset, limit) def stop(self): diff --git a/src/olpc/datastore/datastore.py b/src/olpc/datastore/datastore.py index 56b55ac..9880f43 100644 --- a/src/olpc/datastore/datastore.py +++ b/src/olpc/datastore/datastore.py @@ -257,7 +257,11 @@ class DataStore(dbus.service.Object): include_files = kwargs.pop('include_files', False) order_by = kwargs.pop('order_by', []) - + + # XXX: this is a workaround, deal properly with n backends + limit = kwargs.pop('limit', 50) + offset = kwargs.pop('offset', 0) + # distribute the search to all the mountpoints unless a # backingstore id set is specified results, count = self._multiway_search(kwargs) @@ -319,6 +323,9 @@ class DataStore(dbus.service.Object): props['filename'] = filename d.append(props) + if limit: + d = d[offset: offset+limit] + return (d, len(results)) def get(self, uid): -- cgit v0.9.1