diff options
| author | Simon Charette <charette.s@gmail.com> | 2019-03-06 02:05:32 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2019-03-21 20:54:21 -0400 |
| commit | 5935a9aeade517aebdceea989467d2b46c44d96f (patch) | |
| tree | 5926a2b149f9167b12c2f4d575b822883d16ffcb | |
| parent | 3a505c70e7b228bf1212c067a8f38271ca86ce09 (diff) | |
Removed obsolete Lookup hook to prepare rhs expressions.
After 3a505c70e7b228bf1212c067a8f38271ca86ce09, all _prepare() methods
return self.
| -rw-r--r-- | django/contrib/postgres/fields/array.py | 3 | ||||
| -rw-r--r-- | django/db/models/expressions.py | 10 | ||||
| -rw-r--r-- | django/db/models/lookups.py | 10 | ||||
| -rw-r--r-- | django/db/models/sql/query.py | 3 |
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") |
