Fixed #22907 -- Array contains must have same type.
This commit is contained in:
parent
9a2ab62977
commit
b65a2001e7
|
@ -159,7 +159,8 @@ class ArrayContainsLookup(Lookup):
|
|||
lhs, lhs_params = self.process_lhs(qn, connection)
|
||||
rhs, rhs_params = self.process_rhs(qn, connection)
|
||||
params = lhs_params + rhs_params
|
||||
return '%s @> %s' % (lhs, rhs), params
|
||||
type_cast = self.lhs.source.db_type(connection)
|
||||
return '%s @> %s::%s' % (lhs, rhs, type_cast), params
|
||||
|
||||
|
||||
ArrayField.register_lookup(ArrayContainsLookup)
|
||||
|
|
|
@ -118,6 +118,13 @@ class TestQuerying(TestCase):
|
|||
self.objs[1:3]
|
||||
)
|
||||
|
||||
def test_contains_charfield(self):
|
||||
# Regression for #22907
|
||||
self.assertSequenceEqual(
|
||||
CharArrayModel.objects.filter(field__contains=['text']),
|
||||
[]
|
||||
)
|
||||
|
||||
def test_index(self):
|
||||
self.assertSequenceEqual(
|
||||
NullableIntegerArrayModel.objects.filter(field__0=2),
|
||||
|
|
Loading…
Reference in New Issue