summaryrefslogtreecommitdiff
path: root/django/db/models/sql/query.py
diff options
context:
space:
mode:
authorAnssi Kääriäinen <akaariai@gmail.com>2012-11-22 20:27:28 +0200
committerAnssi Kääriäinen <akaariai@gmail.com>2012-11-23 19:53:04 +0200
commit90b86291d022a09031d1df397d7aaebc30e435f7 (patch)
treed0264a1fee77724db1660d8ac807c4689189051d /django/db/models/sql/query.py
parent7b9a1fb9649d169f4ec0e539c4901c66b0f5ebb6 (diff)
Fixed #18375 -- Removed dict-ordering dependency for F-expressions
F() expressions reuse joins like any lookup in a .filter() call - reuse multijoins generated in the same .filter() call else generate new joins. Also, lookups can now reuse joins generated by F(). This change is backwards incompatible, but it is required to prevent dict randomization from generating different queries depending on .filter() kwarg ordering. The new way is also more consistent in how joins are reused.
Diffstat (limited to 'django/db/models/sql/query.py')
-rw-r--r--django/db/models/sql/query.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 4cfb816958..b03465b402 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -1096,7 +1096,7 @@ class Query(object):
value = value()
elif isinstance(value, ExpressionNode):
# If value is a query expression, evaluate it
- value = SQLEvaluator(value, self)
+ value = SQLEvaluator(value, self, reuse=can_reuse)
having_clause = value.contains_aggregate
for alias, aggregate in self.aggregates.items():