mirror of
https://github.com/django/django.git
synced 2025-12-23 09:19:27 +00:00
Refs #35972 -- Returned params in a tuple in further lookups.
This commit is contained in:
parent
43933a1dca
commit
787cc96ef6
5 changed files with 10 additions and 10 deletions
|
|
@ -19,7 +19,7 @@ class GISLookup(Lookup):
|
||||||
band_lhs = None
|
band_lhs = None
|
||||||
|
|
||||||
def __init__(self, lhs, rhs):
|
def __init__(self, lhs, rhs):
|
||||||
rhs, *self.rhs_params = rhs if isinstance(rhs, (list, tuple)) else [rhs]
|
rhs, *self.rhs_params = rhs if isinstance(rhs, (list, tuple)) else (rhs,)
|
||||||
super().__init__(lhs, rhs)
|
super().__init__(lhs, rhs)
|
||||||
self.template_params = {}
|
self.template_params = {}
|
||||||
self.process_rhs_params()
|
self.process_rhs_params()
|
||||||
|
|
|
||||||
|
|
@ -316,8 +316,8 @@ class JSONExact(lookups.Exact):
|
||||||
def process_rhs(self, compiler, connection):
|
def process_rhs(self, compiler, connection):
|
||||||
rhs, rhs_params = super().process_rhs(compiler, connection)
|
rhs, rhs_params = super().process_rhs(compiler, connection)
|
||||||
# Treat None lookup values as null.
|
# Treat None lookup values as null.
|
||||||
if rhs == "%s" and rhs_params == [None]:
|
if rhs == "%s" and (*rhs_params,) == (None,):
|
||||||
rhs_params = ["null"]
|
rhs_params = ("null",)
|
||||||
if connection.vendor == "mysql":
|
if connection.vendor == "mysql":
|
||||||
func = ["JSON_EXTRACT(%s, '$')"] * len(rhs_params)
|
func = ["JSON_EXTRACT(%s, '$')"] * len(rhs_params)
|
||||||
rhs %= tuple(func)
|
rhs %= tuple(func)
|
||||||
|
|
@ -552,7 +552,7 @@ class KeyTransformExact(JSONExact):
|
||||||
|
|
||||||
def as_oracle(self, compiler, connection):
|
def as_oracle(self, compiler, connection):
|
||||||
rhs, rhs_params = super().process_rhs(compiler, connection)
|
rhs, rhs_params = super().process_rhs(compiler, connection)
|
||||||
if rhs_params == ["null"]:
|
if rhs_params and (*rhs_params,) == ("null",):
|
||||||
# Field has key and it's NULL.
|
# Field has key and it's NULL.
|
||||||
has_key_expr = HasKeyOrArrayIndex(self.lhs.lhs, self.lhs.key_name)
|
has_key_expr = HasKeyOrArrayIndex(self.lhs.lhs, self.lhs.key_name)
|
||||||
has_key_sql, has_key_params = has_key_expr.as_oracle(compiler, connection)
|
has_key_sql, has_key_params = has_key_expr.as_oracle(compiler, connection)
|
||||||
|
|
|
||||||
|
|
@ -232,12 +232,12 @@ class BuiltinLookup(Lookup):
|
||||||
lhs_sql = (
|
lhs_sql = (
|
||||||
connection.ops.lookup_cast(self.lookup_name, field_internal_type) % lhs_sql
|
connection.ops.lookup_cast(self.lookup_name, field_internal_type) % lhs_sql
|
||||||
)
|
)
|
||||||
return lhs_sql, list(params)
|
return lhs_sql, tuple(params)
|
||||||
|
|
||||||
def as_sql(self, compiler, connection):
|
def as_sql(self, compiler, connection):
|
||||||
lhs_sql, params = self.process_lhs(compiler, connection)
|
lhs_sql, params = self.process_lhs(compiler, connection)
|
||||||
rhs_sql, rhs_params = self.process_rhs(compiler, connection)
|
rhs_sql, rhs_params = self.process_rhs(compiler, connection)
|
||||||
params.extend(rhs_params)
|
params = (*params, *rhs_params)
|
||||||
rhs_sql = self.get_rhs_op(connection, rhs_sql)
|
rhs_sql = self.get_rhs_op(connection, rhs_sql)
|
||||||
return "%s %s" % (lhs_sql, rhs_sql), params
|
return "%s %s" % (lhs_sql, rhs_sql), params
|
||||||
|
|
||||||
|
|
@ -725,7 +725,7 @@ class YearLookup(Lookup):
|
||||||
rhs_sql, _ = self.process_rhs(compiler, connection)
|
rhs_sql, _ = self.process_rhs(compiler, connection)
|
||||||
rhs_sql = self.get_direct_rhs_sql(connection, rhs_sql)
|
rhs_sql = self.get_direct_rhs_sql(connection, rhs_sql)
|
||||||
start, finish = self.year_lookup_bounds(connection, self.rhs)
|
start, finish = self.year_lookup_bounds(connection, self.rhs)
|
||||||
params.extend(self.get_bound_params(start, finish))
|
params = (*params, *self.get_bound_params(start, finish))
|
||||||
return "%s %s" % (lhs_sql, rhs_sql), params
|
return "%s %s" % (lhs_sql, rhs_sql), params
|
||||||
return super().as_sql(compiler, connection)
|
return super().as_sql(compiler, connection)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1703,8 +1703,8 @@ class SQLInsertCompiler(SQLCompiler):
|
||||||
sql, params = "%s", [val]
|
sql, params = "%s", [val]
|
||||||
|
|
||||||
# The following hook is only used by Oracle Spatial, which sometimes
|
# The following hook is only used by Oracle Spatial, which sometimes
|
||||||
# needs to yield 'NULL' and [] as its placeholder and params instead
|
# needs to yield 'NULL' and () as its placeholder and params instead
|
||||||
# of '%s' and [None]. The 'NULL' placeholder is produced earlier by
|
# of '%s' and (None,). The 'NULL' placeholder is produced earlier by
|
||||||
# OracleOperations.get_geom_placeholder(). The following line removes
|
# OracleOperations.get_geom_placeholder(). The following line removes
|
||||||
# the corresponding None parameter. See ticket #10888.
|
# the corresponding None parameter. See ticket #10888.
|
||||||
params = self.connection.ops.modify_insert_params(sql, params)
|
params = self.connection.ops.modify_insert_params(sql, params)
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ class YearLte(models.lookups.LessThanOrEqual):
|
||||||
real_lhs = self.lhs.lhs
|
real_lhs = self.lhs.lhs
|
||||||
lhs_sql, params = self.process_lhs(compiler, connection, real_lhs)
|
lhs_sql, params = self.process_lhs(compiler, connection, real_lhs)
|
||||||
rhs_sql, rhs_params = self.process_rhs(compiler, connection)
|
rhs_sql, rhs_params = self.process_rhs(compiler, connection)
|
||||||
params.extend(rhs_params)
|
params = (*params, *rhs_params)
|
||||||
# Build SQL where the integer year is concatenated with last month
|
# Build SQL where the integer year is concatenated with last month
|
||||||
# and day, then convert that to date. (We try to have SQL like:
|
# and day, then convert that to date. (We try to have SQL like:
|
||||||
# WHERE somecol <= '2013-12-31')
|
# WHERE somecol <= '2013-12-31')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue