Commit 5c1f5c85 authored by Hanno Schlichting's avatar Hanno Schlichting

Merged c106786 from 2.12 branch

parent 96e44cde
...@@ -316,26 +316,41 @@ class DateRangeIndex(UnIndex): ...@@ -316,26 +316,41 @@ class DateRangeIndex(UnIndex):
set = self._until_only.get( until, None ) set = self._until_only.get( until, None )
if set is None: if set is None:
set = self._until_only[ until ] = IISet() # XXX: Store an int? self._until_only[ until ] = documentId
else:
if isinstance(set, int):
set = self._until_only[ until ] = IISet((set, documentId))
else:
set.insert( documentId ) set.insert( documentId )
elif until is None: elif until is None:
set = self._since_only.get( since, None ) set = self._since_only.get( since, None )
if set is None: if set is None:
set = self._since_only[ since ] = IISet() # XXX: Store an int? self._since_only[ since ] = documentId
else:
if isinstance(set, int):
set = self._since_only[ since ] = IISet((set, documentId))
else:
set.insert( documentId ) set.insert( documentId )
else: else:
set = self._since.get( since, None ) set = self._since.get( since, None )
if set is None: if set is None:
set = self._since[ since ] = IISet() # XXX: Store an int? self._since[ since ] = documentId
else:
if isinstance(set, int):
set = self._since[ since ] = IISet((set, documentId))
else:
set.insert( documentId ) set.insert( documentId )
set = self._until.get( until, None ) set = self._until.get( until, None )
if set is None: if set is None:
set = self._until[ until ] = IISet() # XXX: Store an int? self._until[ until ] = documentId
else:
if isinstance(set, int):
set = self._until[ until ] = IISet((set, documentId))
else:
set.insert( documentId ) set.insert( documentId )
def _removeForwardIndexEntry( self, since, until, documentId ): def _removeForwardIndexEntry( self, since, until, documentId ):
...@@ -352,6 +367,9 @@ class DateRangeIndex(UnIndex): ...@@ -352,6 +367,9 @@ class DateRangeIndex(UnIndex):
set = self._until_only.get( until, None ) set = self._until_only.get( until, None )
if set is not None: if set is not None:
if isinstance(set, int):
del self._until_only[until]
else:
set.remove( documentId ) set.remove( documentId )
if not set: if not set:
...@@ -362,6 +380,9 @@ class DateRangeIndex(UnIndex): ...@@ -362,6 +380,9 @@ class DateRangeIndex(UnIndex):
set = self._since_only.get( since, None ) set = self._since_only.get( since, None )
if set is not None: if set is not None:
if isinstance(set, int):
del self._since_only[ since ]
else:
set.remove( documentId ) set.remove( documentId )
if not set: if not set:
...@@ -371,6 +392,10 @@ class DateRangeIndex(UnIndex): ...@@ -371,6 +392,10 @@ class DateRangeIndex(UnIndex):
set = self._since.get( since, None ) set = self._since.get( since, None )
if set is not None: if set is not None:
if isinstance(set, int):
del self._since[ since ]
else:
set.remove( documentId ) set.remove( documentId )
if not set: if not set:
...@@ -378,6 +403,10 @@ class DateRangeIndex(UnIndex): ...@@ -378,6 +403,10 @@ class DateRangeIndex(UnIndex):
set = self._until.get( until, None ) set = self._until.get( until, None )
if set is not None: if set is not None:
if isinstance(set, int):
del self._until[ until ]
else:
set.remove( documentId ) set.remove( documentId )
if not set: if not set:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment