Commit b65a2001 authored by Marc Tamlyn's avatar Marc Tamlyn
Browse files

Fixed #22907 -- Array contains must have same type.

parent 9a2ab629
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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)
+7 −0
Original line number Diff line number Diff line
@@ -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),