From 390703b41e7c46e0dcb14c14d7a8aba09483c7db Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Thu, 14 Dec 2017 14:27:02 -0300 Subject: [feature] get_size_list for listing blobs sizes --- src/leap/soledad/client/_db/blobs/sql.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/leap/soledad/client/_db/blobs/sql.py b/src/leap/soledad/client/_db/blobs/sql.py index 6b92c503..a192ae1e 100644 --- a/src/leap/soledad/client/_db/blobs/sql.py +++ b/src/leap/soledad/client/_db/blobs/sql.py @@ -217,6 +217,20 @@ class SQLiteBlobBackend(object): else: defer.returnValue([]) + @defer.inlineCallbacks + def get_size_list(self, blob_ids, namespace=''): + query = 'SELECT BLOB_ID, LENGTH(PAYLOAD) FROM BLOBS WHERE BLOB_ID IN ' + query += ('(%s)' % ', '.join(['?' for _ in blob_ids])) + query += ' AND NAMESPACE = ? ORDER BY BLOB_ID' + values = tuple(blob_ids) + (namespace,) + results = yield self.dbpool.runQuery(query, values) + if results: + results = dict([(result[0], result[1]) for result in results]) + results = [(blob_id, results[blob_id]) for blob_id in blob_ids] + defer.returnValue(results) + else: + defer.returnValue([]) + @defer.inlineCallbacks def exists(self, blob_id, namespace=''): query = 'SELECT blob_id from blobs WHERE blob_id = ? AND namespace= ?' -- cgit v1.2.3