Skip to content

Commit

Permalink
distinguish reverse spec more clearly from algorithm choice
Browse files Browse the repository at this point in the history
  • Loading branch information
hannosch committed Apr 7, 2012
1 parent 5ebc0ba commit 9da40f6
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/Products/ZCatalog/Catalog.py
Expand Up @@ -720,11 +720,12 @@ def sortResults(self, rs, sort_index, reverse=False, limit=None,
# limit to current maximum of sort indexes
sort_spec = sort_spec[:sort_index_length]
# use first sort order for choosing the algorithm
reverse = reverse[0]
first_reverse = reverse[0]
else:
sort_spec = []
for i in xrange(sort_index_length):
sort_spec.append(reverse and -1 or 1)
first_reverse = reverse

if merge and limit is None and (
rlen > (len(sort_index) * (rlen / 100 + 1))):
Expand Down Expand Up @@ -792,7 +793,7 @@ def sortResults(self, rs, sort_index, reverse=False, limit=None,
sequence, _ = self._limit_sequence(result, 0, b_start, b_size,
switched_reverse)
return sequence
elif reverse:
elif first_reverse:
# Limit / sort results using N-Best algorithm
# This is faster for large sets then a full sort
# And uses far less memory
Expand Down Expand Up @@ -831,7 +832,7 @@ def sortResults(self, rs, sort_index, reverse=False, limit=None,
sequence, _ = self._limit_sequence(result, 0, b_start, b_size,
switched_reverse)
return sequence
elif not reverse:
elif not first_reverse:
# Limit / sort results using N-Best algorithm in reverse (N-Worst?)
keys = []
n = 0
Expand Down

0 comments on commit 9da40f6

Please sign in to comment.