From 0ae94d0d3127adabcb0afaf32fd5dbe47d74cd57 Mon Sep 17 00:00:00 2001 From: Marc Tamlyn Date: Tue, 20 Jan 2015 09:52:23 +0000 Subject: Fixes #24169 -- More arrayfield specific lookups. varchar()[] cannot compare itself to text[] Thanks to joelburton for the patch. --- django/contrib/postgres/fields/array.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'django/contrib/postgres/fields/array.py') diff --git a/django/contrib/postgres/fields/array.py b/django/contrib/postgres/fields/array.py index b0850b92e7..af575c6b30 100644 --- a/django/contrib/postgres/fields/array.py +++ b/django/contrib/postgres/fields/array.py @@ -158,8 +158,20 @@ class ArrayContains(lookups.DataContains): return sql, params -ArrayField.register_lookup(lookups.ContainedBy) -ArrayField.register_lookup(lookups.Overlap) +@ArrayField.register_lookup +class ArrayContainedBy(lookups.ContainedBy): + def as_sql(self, qn, connection): + sql, params = super(ArrayContainedBy, self).as_sql(qn, connection) + sql += '::%s' % self.lhs.output_field.db_type(connection) + return sql, params + + +@ArrayField.register_lookup +class ArrayOverlap(lookups.Overlap): + def as_sql(self, qn, connection): + sql, params = super(ArrayOverlap, self).as_sql(qn, connection) + sql += '::%s' % self.lhs.output_field.db_type(connection) + return sql, params @ArrayField.register_lookup -- cgit v1.2.1