Opened 10 years ago

Last modified 10 years ago

#24169 closed Bug

ArrayField can't use __contained_by or __overlap queries for CharField — at Initial Version

Reported by: Joel Burton Owned by:
Component: contrib.postgres Version: 1.8alpha1
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

ArrayField's lookup.py uses the @> operator for contains, the <@ operator for contained_by, and the && operator for overlap.

When the field uses CharField (Postgres' varchar()), contains works, but contained_by and overlap do not, as Postgres does not define <@ and && operators for an array of varchar[] (it does for text[]).

contains works because, in array.py, there is a custom lookup, "ArrayOverlap", the outputs a cast to cast the array query value to, say, "::varchar(10)[]"

If there are similar custom lookups for contained_by and overlap, these then work.

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top