summaryrefslogtreecommitdiff
path: root/Mailman/Archiver/HyperDatabase.py
diff options
context:
space:
mode:
authorbwarsaw1999-07-01 20:33:46 +0000
committerbwarsaw1999-07-01 20:33:46 +0000
commit3bf91d8e58657ce26c57db0c1099071e36bcd51e (patch)
tree3178a57b7850b3c4fc080e777e4dc9b9dfaf72c7 /Mailman/Archiver/HyperDatabase.py
parent2db6d7a2671e8c3114fb30860779947dd9bb46fa (diff)
downloadmailman-3bf91d8e58657ce26c57db0c1099071e36bcd51e.tar.gz
mailman-3bf91d8e58657ce26c57db0c1099071e36bcd51e.tar.zst
mailman-3bf91d8e58657ce26c57db0c1099071e36bcd51e.zip
Diffstat (limited to 'Mailman/Archiver/HyperDatabase.py')
-rw-r--r--Mailman/Archiver/HyperDatabase.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/Mailman/Archiver/HyperDatabase.py b/Mailman/Archiver/HyperDatabase.py
index 488c4677e..7a7a838c0 100644
--- a/Mailman/Archiver/HyperDatabase.py
+++ b/Mailman/Archiver/HyperDatabase.py
@@ -88,8 +88,10 @@ class DumbBTree:
else:
self.current_index = self.current_index + 1
-
-
+ def clear(self):
+ # bulk clearing much faster than deleting each item, esp. with the
+ # implementation of __delitem__() above :(
+ self.dict = {}
def first(self):
if not self.sorted:
@@ -296,7 +298,10 @@ class HyperDatabase(pipermail.Database):
def newArchive(self, archive): pass
def clearIndex(self, archive, index):
self.__openIndices(archive)
- index=getattr(self, index+'Index')
+## index=getattr(self, index+'Index')
+ if hasattr(self.threadIndex, 'clear'):
+ self.threadIndex.clear()
+ return
finished=0
try:
key, msgid=self.threadIndex.first()