From 948234cfbb75e58a807e3421ca04cfd2c9439240 Mon Sep 17 00:00:00 2001 From: richard Date: Thu, 13 Feb 2003 07:33:38 +0000 Subject: [PATCH] anydbm should return brand new items, even if cache is turned off git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@1502 57a73879-2fb5-44c3-a270-3262357dd7e2 --- roundup/backends/back_anydbm.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/roundup/backends/back_anydbm.py b/roundup/backends/back_anydbm.py index ace6c45..8d389c3 100644 --- a/roundup/backends/back_anydbm.py +++ b/roundup/backends/back_anydbm.py @@ -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 @@ class Database(FileStorage, hyperdb.Database, roundupdb.Database): 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 -- 2.30.2