summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2019-03-06 02:05:32 -0500
committerTim Graham <timograham@gmail.com>2019-03-21 20:54:21 -0400
commit5935a9aeade517aebdceea989467d2b46c44d96f (patch)
tree5926a2b149f9167b12c2f4d575b822883d16ffcb
parent3a505c70e7b228bf1212c067a8f38271ca86ce09 (diff)
Removed obsolete Lookup hook to prepare rhs expressions.
After 3a505c70e7b228bf1212c067a8f38271ca86ce09, all _prepare() methods return self.
-rw-r--r--django/contrib/postgres/fields/array.py3
-rw-r--r--django/db/models/expressions.py10
-rw-r--r--django/db/models/lookups.py10
-rw-r--r--django/db/models/sql/query.py3
4 files changed, 5 insertions, 21 deletions
diff --git a/django/contrib/postgres/fields/array.py b/django/contrib/postgres/fields/array.py
index e00e7ac803..a344cccbcc 100644
--- a/django/contrib/postgres/fields/array.py
+++ b/django/contrib/postgres/fields/array.py
@@ -240,8 +240,7 @@ class ArrayLenTransform(Transform):
class ArrayInLookup(In):
def get_prep_lookup(self):
values = super().get_prep_lookup()
- if hasattr(self.rhs, '_prepare'):
- # Subqueries don't need further preparation.
+ if hasattr(values, 'resolve_expression'):
return values
# In.process_rhs() expects values to be hashable, so convert lists
# to tuples.
diff --git a/django/db/models/expressions.py b/django/db/models/expressions.py
index 5d630a63b3..37818850be 100644
--- a/django/db/models/expressions.py
+++ b/django/db/models/expressions.py
@@ -245,10 +245,6 @@ class BaseExpression:
])
return c
- def _prepare(self, field):
- """Hook used by Lookup.get_prep_lookup() to do custom preparation."""
- return self
-
@property
def field(self):
return self.output_field
@@ -537,9 +533,6 @@ class ResolvedOuterRef(F):
'only be used in a subquery.'
)
- def _prepare(self, output_field=None):
- return self
-
def relabeled_clone(self, relabels):
return self
@@ -551,9 +544,6 @@ class OuterRef(F):
return self.name
return ResolvedOuterRef(self.name)
- def _prepare(self, output_field=None):
- return self
-
class Func(SQLiteNumericMixin, Expression):
"""An SQL function call."""
diff --git a/django/db/models/lookups.py b/django/db/models/lookups.py
index 910291094e..70cd525f30 100644
--- a/django/db/models/lookups.py
+++ b/django/db/models/lookups.py
@@ -64,8 +64,8 @@ class Lookup:
self.lhs, self.rhs = new_exprs
def get_prep_lookup(self):
- if hasattr(self.rhs, '_prepare'):
- return self.rhs._prepare(self.lhs.output_field)
+ if hasattr(self.rhs, 'resolve_expression'):
+ return self.rhs
if self.prepare_rhs and hasattr(self.lhs.output_field, 'get_prep_value'):
return self.lhs.output_field.get_prep_value(self.rhs)
return self.rhs
@@ -195,11 +195,9 @@ class FieldGetDbPrepValueIterableMixin(FieldGetDbPrepValueMixin):
get_db_prep_lookup_value_is_iterable = True
def get_prep_lookup(self):
+ if hasattr(self.rhs, 'resolve_expression'):
+ return self.rhs
prepared_values = []
- if hasattr(self.rhs, '_prepare'):
- # A subquery is like an iterable but its items shouldn't be
- # prepared independently.
- return self.rhs._prepare(self.lhs.output_field)
for rhs_value in self.rhs:
if hasattr(rhs_value, 'resolve_expression'):
# An expression will be handled by the database but can coexist
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 3aa3c0b512..eac61106c6 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -271,9 +271,6 @@ class Query(BaseExpression):
memo[id(self)] = result
return result
- def _prepare(self, field):
- return self
-
def get_compiler(self, using=None, connection=None):
if using is None and connection is None:
raise ValueError("Need either using or connection")