From 6678de130c9539d2103b5c72561c0869f0d838d7 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Sun, 14 Oct 2007 03:46:44 +0000 Subject: [PATCH] queryset-refactor: Fixed handling of extra(tables=...). In passing, this solves a duplicate table / bad SQL problem. Refs #2496. git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6504 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/models/sql/query.py | 6 +++++- tests/regressiontests/queries/models.py | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index c5c7ee07ee..8914bce15c 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -371,7 +371,11 @@ class Query(object): qn(lhs_col), qn(alias), qn(col))) else: result.append('%s%s' % (qn(name), alias_str)) - result.extend(self.extra_tables) + extra_tables = [] + for t in self.extra_tables: + alias, created = self.table_alias(t) + if created: + result.append(', %s' % alias) return result, [] def get_grouping(self): diff --git a/tests/regressiontests/queries/models.py b/tests/regressiontests/queries/models.py index afc70dee9a..64baacc32d 100644 --- a/tests/regressiontests/queries/models.py +++ b/tests/regressiontests/queries/models.py @@ -202,5 +202,9 @@ Bug #2400 [] >>> Tag.objects.filter(item__isnull=True) [] + +Bug #2496 +>>> Item.objects.extra(tables=['queries_author']).select_related().order_by('name')[:1] +[] """}