def keyStats(self):
"""Count the total number of keys and values in the database.
- @rtype: (C{int), C{int})
+ @rtype: (C{int}, C{int})
@return: the number of distinct keys and total values in the database
"""
c = self.conn.cursor()
- c.execute("SELECT COUNT(DISTINCT key) as num_keys, COUNT(value) as num_values FROM kv")
- keys, values = 0, 0
+ c.execute("SELECT COUNT(value) as num_values FROM kv")
+ values = 0
row = c.fetchone()
if row:
- keys, values = row[0], row[1]
+ values = row[0]
+ c.execute("SELECT COUNT(key) as num_keys FROM (SELECT DISTINCT key FROM kv)")
+ keys = 0
+ row = c.fetchone()
+ if row:
+ keys = row[0]
return keys, values
class TestDB(unittest.TestCase):
def test_Value(self):
self.store.storeValue(self.key, self.key)
+ self.failUnlessEqual(self.store.countValues(self.key), 1)
val = self.store.retrieveValues(self.key)
self.failUnlessEqual(len(val), 1)
self.failUnlessEqual(val[0], self.key)