Mercurial > p > roundup > code
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
