[Python-checkins] r69264 - sandbox/trunk/dbm_sqlite/alt/dbsqlite.py

raymond.hettinger python-checkins at python.org
Wed Feb 4 00:11:15 CET 2009


Author: raymond.hettinger
Date: Wed Feb  4 00:11:15 2009
New Revision: 69264

Log:
Fixup broken __len__().

Modified:
   sandbox/trunk/dbm_sqlite/alt/dbsqlite.py

Modified: sandbox/trunk/dbm_sqlite/alt/dbsqlite.py
==============================================================================
--- sandbox/trunk/dbm_sqlite/alt/dbsqlite.py	(original)
+++ sandbox/trunk/dbm_sqlite/alt/dbsqlite.py	Wed Feb  4 00:11:15 2009
@@ -38,8 +38,12 @@
         self.conn.commit()
 
     def __len__(self):
-        GET_LEN =  'SELECT MAX(ROWID) FROM shelf'   # returns None if count is zero
-        return self.conn.execute(GET_LEN).fetchone()[0] or 0
+        GET_LEN =  'SELECT COUNT(*) FROM shelf'
+        return self.conn.execute(GET_LEN).fetchone()[0]
+
+    def __bool__(self):
+        GET_BOOL =  'SELECT MAX(ROWID) FROM shelf'   # returns None if count is zero
+        return self.conn.execute(GET_BOOL).fetchone()[0] is not None
 
     def keys(self):
         return SQLhashKeysView(self)
@@ -163,7 +167,9 @@
             raise Exception('drat!')
 
         print(list(d))
+        print(bool(d), True)        
         d.clear()
+        print(bool(d), False)
         print(list(d))
         d.update(p='x', q='y', r='z')
         print(list(d))


More information about the Python-checkins mailing list