[Zope-Checkins] SVN: Zope/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py Merged c106786 from 2.12 branch

Hanno Schlichting hannosch at hannosch.eu
Sat Dec 19 13:49:50 EST 2009


Log message for revision 106787:
  Merged c106786 from 2.12 branch
  

Changed:
  U   Zope/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py

-=-
Modified: Zope/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py
===================================================================
--- Zope/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py	2009-12-19 18:48:45 UTC (rev 106786)
+++ Zope/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py	2009-12-19 18:49:49 UTC (rev 106787)
@@ -316,27 +316,42 @@
 
             set = self._until_only.get( until, None )
             if set is None:
-                set = self._until_only[ until ] = IISet()  # XXX: Store an int?
-            set.insert( documentId )
-
+                self._until_only[ until ] = documentId
+            else:
+                if isinstance(set, int):
+                    set = self._until_only[ until ] = IISet((set, documentId))
+                else:
+                    set.insert( documentId )
         elif until is None:
 
             set = self._since_only.get( since, None )
             if set is None:
-                set = self._since_only[ since ] = IISet()  # XXX: Store an int?
-            set.insert( documentId )
+                self._since_only[ since ] = documentId
+            else:
+                if isinstance(set, int):
+                    set = self._since_only[ since ] = IISet((set, documentId))
+                else:
+                    set.insert( documentId )
 
         else:
 
             set = self._since.get( since, None )
             if set is None:
-                set = self._since[ since ] = IISet()   # XXX: Store an int?
-            set.insert( documentId )
+                self._since[ since ] = documentId
+            else:
+                if isinstance(set, int):
+                    set = self._since[ since ] = IISet((set, documentId))
+                else:
+                    set.insert( documentId )
 
             set = self._until.get( until, None )
             if set is None:
-                set = self._until[ until ] = IISet() # XXX: Store an int?
-            set.insert( documentId )
+                self._until[ until ] = documentId
+            else:
+                if isinstance(set, int):
+                    set = self._until[ until ] = IISet((set, documentId))
+                else:
+                    set.insert( documentId )
 
     def _removeForwardIndexEntry( self, since, until, documentId ):
         """
@@ -352,37 +367,51 @@
             set = self._until_only.get( until, None )
             if set is not None:
 
-                set.remove( documentId )
+                if isinstance(set, int):
+                    del self._until_only[until]
+                else:
+                    set.remove( documentId )
 
-                if not set:
-                    del self._until_only[ until ]
+                    if not set:
+                        del self._until_only[ until ]
 
         elif until is None:
 
             set = self._since_only.get( since, None )
             if set is not None:
 
-                set.remove( documentId )
-
-                if not set:
+                if isinstance(set, int):
                     del self._since_only[ since ]
+                else:
+                    set.remove( documentId )
 
+                    if not set:
+                        del self._since_only[ since ]
+
         else:
 
             set = self._since.get( since, None )
             if set is not None:
-                set.remove( documentId )
 
-                if not set:
+                if isinstance(set, int):
                     del self._since[ since ]
+                else:
+                    set.remove( documentId )
 
+                    if not set:
+                        del self._since[ since ]
+
             set = self._until.get( until, None )
             if set is not None:
-                set.remove( documentId )
 
-                if not set:
+                if isinstance(set, int):
                     del self._until[ until ]
+                else:
+                    set.remove( documentId )
 
+                    if not set:
+                        del self._until[ until ]
+
     def _convertDateTime( self, value ):
         if value is None:
             return value



More information about the Zope-Checkins mailing list