Hi. Noticed strange thin with @> Query "select '{1,2}'::int[] @> '{1,2,2,2,2,2,2,2}'::int[]" returns true, but first array contains even less elements then second. I think it's a bug in "contains" logic, but don't know where to submit it.
Its a valid interpretation of "contains", for this purpose each array is treated like a set (ignoring the cardinality of elements, and overall dimensionality), but it needs to be documented as behaving that way on that page. I don't see that its documented anywhere for that matter. The source code documents that dimensions are ignored but is silent on duplication of elements:
array_contain_compare:
/*----------------------------------------------------------------------------- * array overlap/containment comparisons * These use the same methods of comparing array elements as array_eq. * We consider only the elements of the arrays, ignoring dimensionality. *---------------------------------------------------------------------------- */