diff --git a/minode/sql.py b/minode/sql.py index 68e6650..7f3d9ed 100644 --- a/minode/sql.py +++ b/minode/sql.py @@ -39,18 +39,17 @@ class Inventory(): cur.execute('VACUUM') cur.execute("INSERT INTO status VALUES ('lastvacuumtime', ?)", (now,)) self._db.commit() + self._db.row_factory = self.__object @staticmethod def __object(cursor, row): + if len(cursor.description) != 8: + return row vector, expires, obj_type, version, stream, tag, data, offset = row return structure.Object( expires, obj_type, version, stream, data, offset, tag=tag, vector=vector) - def __objects(self, cur): - cur.row_factory = self.__object - return cur - def cleanup(self): with shared.objects_lock: self._db.execute( @@ -73,7 +72,7 @@ class Inventory(): cur = self._db.execute( 'SELECT * FROM objects WHERE ' + ' AND '.join(clauses), params) - return self.__objects(cur) + return cur def vectors_to_send(self, stream=None): cur = self._db.execute( @@ -94,8 +93,7 @@ class Inventory(): return (v for v, in cur) def values(self): - cur = self._db.execute('SELECT * FROM objects') - return self.__objects(cur) + return self._db.execute('SELECT * FROM objects') def popitem(self): if not self.rowid: