summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2009-11-19 04:37:26 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2009-11-19 04:37:26 +0000
commit47f1330be1e43711133cec7f2a52e95fd8d74d73 (patch)
treeef2f2ba42ef954eb76d11c6297fcde07c17d95f0
parent4cba436269947df3124fa55c6c53ae170ce596c5 (diff)
[1.1.X] Fixed #12242 -- Corrected a problem with masking extra selects() in a DateQuerySet. Thanks to Alex Gaynor for his help debugging this one.
Backport of r11748 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@11749 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/db/models/sql/subqueries.py2
-rw-r--r--tests/regressiontests/queries/models.py12
2 files changed, 12 insertions, 2 deletions
diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py
index 0cd393756d..f00f1bd68a 100644
--- a/django/db/models/sql/subqueries.py
+++ b/django/db/models/sql/subqueries.py
@@ -409,7 +409,7 @@ class DateQuery(Query):
self.select = [select]
self.select_fields = [None]
self.select_related = False # See #7097.
- self.extra = {}
+ self.set_extra_mask([])
self.distinct = True
self.order_by = order == 'ASC' and [1] or [-1]
diff --git a/tests/regressiontests/queries/models.py b/tests/regressiontests/queries/models.py
index cf21d5210b..ddac509ede 100644
--- a/tests/regressiontests/queries/models.py
+++ b/tests/regressiontests/queries/models.py
@@ -755,10 +755,20 @@ Bug #6180, #6203 -- dates with limits and/or counts
>>> Item.objects.dates('created', 'day')[0]
datetime.datetime(2007, 12, 19, 0, 0)
-Bug #7087 -- dates with extra select columns
+Bug #7087/#12242 -- dates with extra select columns
>>> Item.objects.dates('created', 'day').extra(select={'a': 1})
[datetime.datetime(2007, 12, 19, 0, 0), datetime.datetime(2007, 12, 20, 0, 0)]
+>>> Item.objects.extra(select={'a': 1}).dates('created', 'day')
+[datetime.datetime(2007, 12, 19, 0, 0), datetime.datetime(2007, 12, 20, 0, 0)]
+
+>>> name="one"
+>>> Item.objects.dates('created', 'day').extra(where=['name=%s'], params=[name])
+[datetime.datetime(2007, 12, 19, 0, 0)]
+
+>>> Item.objects.extra(where=['name=%s'], params=[name]).dates('created', 'day')
+[datetime.datetime(2007, 12, 19, 0, 0)]
+
Bug #7155 -- nullable dates
>>> Item.objects.dates('modified', 'day')
[datetime.datetime(2007, 12, 19, 0, 0)]