mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed a suite of errors in the ORM -- a) fixed calling values_list().values_list() and changing whether the results are flat, b) fixed an issue with fields on the left-hand side of what becomes the HAVING clause not being included in the GROUP BY clause, and c) fixed a bug with fields from values() calls not being included in the GROUP BY clause. This fixed the recent test failures under postgresql.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14715 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -654,6 +654,25 @@ class AggregationTests(TestCase):
|
||||
attrgetter("name")
|
||||
)
|
||||
|
||||
def test_values_annotate_values(self):
|
||||
qs = Book.objects.values("name").annotate(
|
||||
n_authors=Count("authors")
|
||||
).values_list("pk", flat=True)
|
||||
self.assertEqual(list(qs), list(Book.objects.values_list("pk", flat=True)))
|
||||
|
||||
def test_having_group_by(self):
|
||||
# Test that when a field occurs on the LHS of a HAVING clause that it
|
||||
# appears correctly in the GROUP BY clause
|
||||
qs = Book.objects.values_list("name").annotate(
|
||||
n_authors=Count("authors")
|
||||
).filter(
|
||||
pages__gt=F("n_authors")
|
||||
).values_list("name", flat=True)
|
||||
# Results should be the same, all Books have more pages than authors
|
||||
self.assertEqual(
|
||||
list(qs), list(Book.objects.values_list("name", flat=True))
|
||||
)
|
||||
|
||||
@skipUnlessDBFeature('supports_stddev')
|
||||
def test_stddev(self):
|
||||
self.assertEqual(
|
||||
|
||||
Reference in New Issue
Block a user