diff --git a/product/ZSQLCatalog/SQLCatalog.py b/product/ZSQLCatalog/SQLCatalog.py index f7ff3c43fb16d824fad9bc76c82ba51e7635cbdc..a2e0d8c82409a57de600b4d4cd8c70fa7d277fb1 100644 --- a/product/ZSQLCatalog/SQLCatalog.py +++ b/product/ZSQLCatalog/SQLCatalog.py @@ -101,12 +101,15 @@ except ImportError: def getTransactionalVariable(): return {} -def generateCatalogCacheId(method_id, self, *args, **kwd): - # XXX: getPath is overkill for a unique cache identifier. +def getInstanceID(instance): + # XXX: getPhysicalPath is overkill for a unique cache identifier. # What I would like to use instead of it is: # (self._p_jar.db().database_name, self._p_oid) # but database_name is not unique in at least ZODB 3.4 (Zope 2.8.8). - return str((method_id, self.getCacheSequenceNumber(), self.getPath(), + return instance.getPhysicalPath() + +def generateCatalogCacheId(method_id, self, *args, **kwd): + return str((method_id, self.getCacheSequenceNumber(), getInstanceID(self), args, kwd)) class transactional_cache_decorator: