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
|
||||
|
||||
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)
|
||||
self.template_params = {}
|
||||
self.process_rhs_params()
|
||||
|
|
|
|||
|
|
@ -316,8 +316,8 @@ class JSONExact(lookups.Exact):
|
|||
def process_rhs(self, compiler, connection):
|
||||
rhs, rhs_params = super().process_rhs(compiler, connection)
|
||||
# Treat None lookup values as null.
|
||||
if rhs == "%s" and rhs_params == [None]:
|
||||
rhs_params = ["null"]
|
||||
if rhs == "%s" and (*rhs_params,) == (None,):
|
||||
rhs_params = ("null",)
|
||||
if connection.vendor == "mysql":
|
||||
func = ["JSON_EXTRACT(%s, '$')"] * len(rhs_params)
|
||||
rhs %= tuple(func)
|
||||
|
|
@ -552,7 +552,7 @@ class KeyTransformExact(JSONExact):
|
|||
|
||||
def as_oracle(self, 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.
|
||||
has_key_expr = HasKeyOrArrayIndex(self.lhs.lhs, self.lhs.key_name)
|
||||
has_key_sql, has_key_params = has_key_expr.as_oracle(compiler, connection)
|
||||
|
|
|
|||
|
|
@ -232,12 +232,12 @@ class BuiltinLookup(Lookup):
|
|||
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):
|
||||
lhs_sql, params = self.process_lhs(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)
|
||||
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.get_direct_rhs_sql(connection, rhs_sql)
|
||||
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 super().as_sql(compiler, connection)
|
||||
|
||||
|
|
|
|||
|
|
@ -1703,8 +1703,8 @@ class SQLInsertCompiler(SQLCompiler):
|
|||
sql, params = "%s", [val]
|
||||
|
||||
# The following hook is only used by Oracle Spatial, which sometimes
|
||||
# needs to yield 'NULL' and [] as its placeholder and params instead
|
||||
# of '%s' and [None]. The 'NULL' placeholder is produced earlier by
|
||||
# needs to yield 'NULL' and () as its placeholder and params instead
|
||||
# of '%s' and (None,). The 'NULL' placeholder is produced earlier by
|
||||
# OracleOperations.get_geom_placeholder(). The following line removes
|
||||
# the corresponding None parameter. See ticket #10888.
|
||||
params = self.connection.ops.modify_insert_params(sql, params)
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ class YearLte(models.lookups.LessThanOrEqual):
|
|||
real_lhs = self.lhs.lhs
|
||||
lhs_sql, params = self.process_lhs(compiler, connection, real_lhs)
|
||||
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
|
||||
# and day, then convert that to date. (We try to have SQL like:
|
||||
# WHERE somecol <= '2013-12-31')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue