Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

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 authored January 24, 2009
3  django/db/models/sql/query.py
@@ -385,7 +385,8 @@ def as_sql(self, with_limits=True, with_col_aliases=False):
385 385
                 # other than MySQL), then any fields mentioned in the
386 386
                 # ordering clause needs to be in the group by clause.
387 387
                 if not self.connection.features.allows_group_by_pk:
388  
-                    grouping.extend(ordering_group_by)
  388
+                    grouping.extend([col for col in ordering_group_by
  389
+                        if col not in grouping])
389 390
             else:
390 391
                 ordering = self.connection.ops.force_no_ordering()
391 392
             result.append('GROUP BY %s' % ', '.join(grouping))
4  tests/regressiontests/aggregation_regress/models.py
@@ -176,8 +176,8 @@ def __unicode__(self):
176 176
 
177 177
 # Regression for #10113 - Fields mentioned in order_by() must be included in the GROUP BY.
178 178
 # This only becomes a problem when the order_by introduces a new join.
179  
->>> Book.objects.annotate(num_authors=Count('authors')).order_by('publisher__name')
180  
-[<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>]
  179
+>>> Book.objects.annotate(num_authors=Count('authors')).order_by('publisher__name', 'name')
  180
+[<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>]
181 181
 
182 182
 """
183 183
 }

0 notes on commit 08dd417

Please sign in to comment.
Something went wrong with that request. Please try again.