summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
authorLuke Plant <L.Plant.98@cantab.net>2010-11-23 13:54:58 +0000
committerLuke Plant <L.Plant.98@cantab.net>2010-11-23 13:54:58 +0000
commitff7c243b4c1dcefb504b5b636b0631edfb5a46c2 (patch)
treeb05793c5f965315ae64d4b4fb6491d609d62c5db /django/db/models/sql
parent8aa2485a58ea8139e9a769d36b07db809480994a (diff)
Fixed #14697 - speeded up model instance creation by moving work outside of loops
Thanks to akaariai for the report and initial patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@14687 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/compiler.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py
index a11d556b38..b2249dc607 100644
--- a/django/db/models/sql/compiler.py
+++ b/django/db/models/sql/compiler.py
@@ -672,6 +672,7 @@ class SQLCompiler(object):
"""
resolve_columns = hasattr(self, 'resolve_columns')
fields = None
+ has_aggregate_select = bool(self.query.aggregate_select)
for rows in self.execute_sql(MULTI):
for row in rows:
if resolve_columns:
@@ -692,7 +693,7 @@ class SQLCompiler(object):
f.column in only_load[db_table]]
row = self.resolve_columns(row, fields)
- if self.query.aggregate_select:
+ if has_aggregate_select:
aggregate_start = len(self.query.extra_select.keys()) + len(self.query.select)
aggregate_end = aggregate_start + len(self.query.aggregate_select)
row = tuple(row[:aggregate_start]) + tuple([