summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2023-06-14 00:28:42 -0400
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-06-14 09:44:49 +0200
commit1c4f5f314e2b0c77b3fa0c75f703218e7e06f4be (patch)
treebe0bfb46870001c7955702e04c3dedf23f5e0415 /django/db/models/sql
parentcfc9c94d97edf9aaea647bbecc89a791cf7ec0b8 (diff)
Refs #32143 -- Removed superflous constraints on excluded query.
The outer query reference is not necessary when alias can be reused and can even be harmful by confusing query planers. Refs #34597.
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/query.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 12066cd4f8..13a6809dd8 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -2020,10 +2020,11 @@ class Query(BaseExpression):
lookup = lookup_class(pk.get_col(query.select[0].alias), pk.get_col(alias))
query.where.add(lookup, AND)
query.external_aliases[alias] = True
+ else:
+ lookup_class = select_field.get_lookup("exact")
+ lookup = lookup_class(col, ResolvedOuterRef(trimmed_prefix))
+ query.where.add(lookup, AND)
- lookup_class = select_field.get_lookup("exact")
- lookup = lookup_class(col, ResolvedOuterRef(trimmed_prefix))
- query.where.add(lookup, AND)
condition, needed_inner = self.build_filter(Exists(query))
if contains_louter: