diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2009-01-24 14:16:25 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2009-01-24 14:16:25 +0000 |
| commit | 08dd4176edc1019d9168608b55fe777512c641cb (patch) | |
| tree | a0f9f9e35fee167a11185af9751f3e63cdcc749c | |
| parent | ff78aef93b3b741e79176bbf96bf0918b44e3338 (diff) | |
Refs #10113 -- Modified the generated SQL to remove redundant GROUP BY 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
| -rw-r--r-- | django/db/models/sql/query.py | 3 | ||||
| -rw-r--r-- | tests/regressiontests/aggregation_regress/models.py | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 6170cc48a4..88847d87e1 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -385,7 +385,8 @@ class BaseQuery(object): # 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)) diff --git a/tests/regressiontests/aggregation_regress/models.py b/tests/regressiontests/aggregation_regress/models.py index f41d9a252b..a87ce1cd1d 100644 --- a/tests/regressiontests/aggregation_regress/models.py +++ b/tests/regressiontests/aggregation_regress/models.py @@ -176,8 +176,8 @@ FieldError: Cannot resolve keyword 'foo' into field. Choices are: authors, id, i # 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>] """ } |
