Commit 52fdedba authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

Fixed #7759 -- Fixed QuerySet.count() when the results cache was only partially

populated.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@7938 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 57bb10e6
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -280,11 +280,10 @@ class QuerySet(object):
        Performs a SELECT COUNT() and returns the number of records as an
        integer.

        If the QuerySet is already cached (i.e. self._result_cache is set) this
        simply returns the length of the cached results set to avoid multiple
        SELECT COUNT(*) calls.
        If the QuerySet is already fully cached this simply returns the length
        of the cached results set to avoid multiple SELECT COUNT(*) calls.
        """
        if self._result_cache is not None:
        if self._result_cache is not None and not self._iter:
            return len(self._result_cache)

        return self.query.get_count()
+8 −0
Original line number Diff line number Diff line
@@ -830,5 +830,13 @@ another cursor.
...     obj.save()
...     if i > 10: break

Bug #7759 -- count should work with a partially read result set.
>>> count = Number.objects.count()
>>> qs = Number.objects.all()
>>> for obj in qs:
...     qs.count() == count
...     break
True

"""}