Skip to content

Commit f9d3d24

Browse files
prabhbirprabhbir
authored andcommitted
Fix GROUP BY alias in subquery generation
1 parent f660db0 commit f9d3d24

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

tests/test_group_by.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from tests.testmodels import Author, Book, Event, Team, Tournament
22
from tortoise.contrib import test
33
from tortoise.functions import Avg, Count, Sum, Upper
4-
4+
from tortoise.expressions import Subquery
55

66
class TestGroupBy(test.TestCase):
77
async def asyncSetUp(self) -> None:
@@ -317,3 +317,19 @@ async def test_group_by_nested_column(self):
317317
async def test_group_by_id_with_nested_filter(self):
318318
ret = await Book.filter(author__name="author1").group_by("id").values_list("id")
319319
self.assertEqual(set(ret), {(book.id,) for book in self.books1})
320+
321+
async def test_subquery_group_by_no_alias(self):
322+
323+
query = Author.annotate(
324+
book_name=Subquery(
325+
Book.all().group_by("name").order_by("name").limit(1).values("name")
326+
)
327+
)
328+
329+
sql = query.sql()
330+
331+
self.assertIn('GROUP BY "name"', sql)
332+
self.assertNotIn('GROUP BY "name" "', sql)
333+
334+
result = await query.values("name", "book_name")
335+
self.assertIsInstance(result, list)

tortoise/queryset.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1598,9 +1598,7 @@ def _resolve_group_bys(self, *field_names: str) -> list:
15981598
field=field,
15991599
forwarded_fields=forwarded_fields,
16001600
)
1601-
field = related_table[related_db_field].as_(
1602-
f"{related_table.get_table_name()}__{field_name}"
1603-
)
1601+
field = related_table[related_db_field]
16041602
group_bys.append(field)
16051603
return group_bys
16061604

0 commit comments

Comments
 (0)