summaryrefslogtreecommitdiff
path: root/django/db/models/sql/query.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/models/sql/query.py')
-rw-r--r--django/db/models/sql/query.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index f76519401b..9040c5a5a4 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -1192,10 +1192,12 @@ class Query:
return self.split_exclude(filter_expr, LOOKUP_SEP.join(parts[:e.level]),
can_reuse, e.names_with_path)
- if can_reuse is not None:
- can_reuse.update(join_list)
+ # Update used_joins before trimming since they are reused to determine
+ # which joins could be later promoted to INNER.
used_joins = set(used_joins).union(set(join_list))
targets, alias, join_list = self.trim_joins(sources, join_list, path)
+ if can_reuse is not None:
+ can_reuse.update(join_list)
if field.is_relation:
# No support for transforms for relational fields