Skip to content

Commit 8b3e3c2

Browse files
committed
Reuse order by from pre_sql_setup.
1 parent 97c62a9 commit 8b3e3c2

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

django_mongodb/compiler.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,10 @@ def _prepare_annotations_for_group_pipeline(self):
9292
group.update(having_group)
9393
return group, replacements
9494

95-
def _get_group_id_expressions(self):
95+
def _get_group_id_expressions(self, order_by):
9696
"""Generate group ID expressions for the aggregation pipeline."""
9797
group_expressions = set()
9898
replacements = {}
99-
order_by = self.get_order_by()
10099
for expr, (_, _, is_ref) in order_by:
101100
if not is_ref:
102101
group_expressions |= set(expr.get_group_by_cols())
@@ -170,14 +169,14 @@ def _build_group_pipeline(self, ids, group):
170169
return pipeline
171170

172171
def pre_sql_setup(self, with_col_aliases=False):
173-
pre_setup = super().pre_sql_setup(with_col_aliases=with_col_aliases)
172+
extra_select, order_by, group_by = super().pre_sql_setup(with_col_aliases=with_col_aliases)
174173
group, all_replacements = self._prepare_annotations_for_group_pipeline()
175174

176175
# The query.group_by is either None (no GROUP BY at all), True
177176
# (group by select fields), or a list of expressions to be added
178177
# to the group by.
179178
if group or self.query.group_by:
180-
ids, replacements = self._get_group_id_expressions()
179+
ids, replacements = self._get_group_id_expressions(order_by)
181180
all_replacements.update(replacements)
182181
pipeline = self._build_group_pipeline(ids, group)
183182
if self.having:
@@ -197,7 +196,7 @@ def pre_sql_setup(self, with_col_aliases=False):
197196
for target, expr in self.query.annotation_select.items()
198197
}
199198

200-
return pre_setup
199+
return extra_select, order_by, group_by
201200

202201
def execute_sql(
203202
self, result_type=MULTI, chunked_fetch=False, chunk_size=GET_ITERATOR_CHUNK_SIZE

0 commit comments

Comments
 (0)