Refs #10060 -- Corrected description of multiple annotations bug.

This commit is contained in:
Tim Graham 2015-12-08 16:45:15 -05:00
parent 69b69f6d60
commit 3d2236773b
1 changed files with 4 additions and 5 deletions

View File

@ -190,9 +190,8 @@ Combining multiple aggregations
------------------------------- -------------------------------
Combining multiple aggregations with ``annotate()`` will `yield the wrong Combining multiple aggregations with ``annotate()`` will `yield the wrong
results <https://code.djangoproject.com/ticket/10060>`_, as multiple tables are results <https://code.djangoproject.com/ticket/10060>`_ because joins are used
cross joined. Due to the use of ``LEFT OUTER JOIN``, duplicate records will be instead of subqueries:
generated if some of the joined tables contain more records than the others:
>>> Book.objects.first().authors.count() >>> Book.objects.first().authors.count()
2 2
@ -374,8 +373,8 @@ Both queries return a list of publishers that have at least one book with a
rating exceeding 3.0, hence publisher C is excluded. rating exceeding 3.0, hence publisher C is excluded.
In the first query, the annotation precedes the filter, so the filter has no In the first query, the annotation precedes the filter, so the filter has no
effect on the annotation. ``distinct=True`` is required to avoid a effect on the annotation. ``distinct=True`` is required to avoid a :ref:`query
:ref:`cross-join bug <combining-multiple-aggregations>`. bug <combining-multiple-aggregations>`.
The second query counts the number of books that have a rating exceeding 3.0 The second query counts the number of books that have a rating exceeding 3.0
for each publisher. The filter precedes the annotation, so the filter for each publisher. The filter precedes the annotation, so the filter