[Zope-Checkins] CVS: StandaloneZODB/ZODB - FileStorage.py:1.60.4.2.8.2

Jeremy Hylton jeremy@zope.com
Mon, 3 Dec 2001 16:15:20 -0500


Update of /cvs-repository/StandaloneZODB/ZODB
In directory cvs.zope.org:/tmp/cvs-serv11787/ZODB

Modified Files:
      Tag: BTreeFSIndex-branch
	FileStorage.py 
Log Message:
Two small changes related to fsIndex.

Put the import-failed logic for fsIndex in FileStorage rather than in
fsIndex.  The indention is easier here.

Use fsIndexes for the pindex and nvindex during a pack.  Each of these
can get fairly large, so it makes sense to use the more efficient
representation. 



=== StandaloneZODB/ZODB/FileStorage.py 1.60.4.2.8.1 => 1.60.4.2.8.2 ===
 import ConflictResolution
 
-from fsIndex import fsIndex
+try:
+    from fsIndex import fsIndex
+except ImportError:
+    def fsIndex():
+        return {}
 
 try: from posix import fsync
 except: fsync=None
@@ -333,7 +337,8 @@
         self._index_get=index.get
         self._vindex_get=vindex.get
 
-    def __len__(self): return len(self._index)
+    def __len__(self):
+        return len(self._index)
 
     def _newIndexes(self):
         return fsIndex(), {}, {}, {}
@@ -1246,7 +1251,7 @@
     
             rootl=[z64]
             pop=rootl.pop
-            pindex={}
+            pindex=fsIndex()
             referenced=pindex.has_key
             _load=self._load
             _loada=self._loada
@@ -1276,7 +1281,7 @@
     
             # Index for non-version data.  This is a temporary structure
             # to reduce I/O during packing
-            nvindex={}
+            nvindex=fsIndex()
     
             # Cache a bunch of methods
             seek=file.seek