diff roundup/backends/back_anydbm.py @ 1424:6709b759b16a

anydbm should return brand new items, even if cache is turned off
author Richard Jones <richard@users.sourceforge.net>
date Thu, 13 Feb 2003 07:33:38 +0000
parents 472c21af7f69
children c70068162e64
line wrap: on
line diff
--- a/roundup/backends/back_anydbm.py	Wed Feb 12 23:09:42 2003 +0000
+++ b/roundup/backends/back_anydbm.py	Thu Feb 13 07:33:38 2003 +0000
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-#$Id: back_anydbm.py,v 1.101 2003-02-12 00:00:18 richard Exp $
+#$Id: back_anydbm.py,v 1.102 2003-02-13 07:33:38 richard Exp $
 '''
 This module defines a backend that saves the hyperdatabase in a database
 chosen by anydbm. It is guaranteed to always be available in python
@@ -299,6 +299,13 @@
         if db is None:
             db = self.getclassdb(classname)
         if not db.has_key(nodeid):
+            # try the cache - might be a brand-new node
+            cache_dict = self.cache.setdefault(classname, {})
+            if cache_dict.has_key(nodeid):
+                if __debug__:
+                    print >>hyperdb.TRACE, 'get %s %s cached'%(classname,
+                        nodeid)
+                return cache_dict[nodeid]
             raise IndexError, "no such %s %s"%(classname, nodeid)
 
         # check the uncommitted, destroyed nodes

Roundup Issue Tracker: http://roundup-tracker.org/