On Sun, Aug 18, 2019 at 8:53 AM PG Doc comments form <nore...@postgresql.org>
wrote:

> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/9.6/functions-array.html
> Description:
>
> 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.
 *----------------------------------------------------------------------------
 */

David J.

Reply via email to