Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Refs #10113 -- Modified the generated SQL to remove redundant GROUP B…

…Y elements, and modified the test added in [9788] to remove a test result that depended on a potentially ambiguous database ordering.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9791 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 08dd4176edc1019d9168608b55fe777512c641cb 1 parent ff78aef
Russell Keith-Magee freakboy3742 authored
3  django/db/models/sql/query.py
View
@@ -385,7 +385,8 @@ def as_sql(self, with_limits=True, with_col_aliases=False):
# other than MySQL), then any fields mentioned in the
# ordering clause needs to be in the group by clause.
if not self.connection.features.allows_group_by_pk:
- grouping.extend(ordering_group_by)
+ grouping.extend([col for col in ordering_group_by
+ if col not in grouping])
else:
ordering = self.connection.ops.force_no_ordering()
result.append('GROUP BY %s' % ', '.join(grouping))
4 tests/regressiontests/aggregation_regress/models.py
View
@@ -176,8 +176,8 @@ def __unicode__(self):
# Regression for #10113 - Fields mentioned in order_by() must be included in the GROUP BY.
# This only becomes a problem when the order_by introduces a new join.
->>> Book.objects.annotate(num_authors=Count('authors')).order_by('publisher__name')
-[<Book: The Definitive Guide to Django: Web Development Done Right>, <Book: Practical Django Projects>, <Book: Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp>, <Book: Python Web Development with Django>, <Book: Artificial Intelligence: A Modern Approach>, <Book: Sams Teach Yourself Django in 24 Hours>]
+>>> Book.objects.annotate(num_authors=Count('authors')).order_by('publisher__name', 'name')
+[<Book: Practical Django Projects>, <Book: The Definitive Guide to Django: Web Development Done Right>, <Book: Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp>, <Book: Artificial Intelligence: A Modern Approach>, <Book: Python Web Development with Django>, <Book: Sams Teach Yourself Django in 24 Hours>]
"""
}
Please sign in to comment.
Something went wrong with that request. Please try again.