Function array_positions

Source
fn array_positions(
    array: Option<ListRef<'_>>,
    element: Option<ScalarRefImpl<'_>>,
) -> Result<Option<ListValue>>
Expand description

Returns an array of the subscripts of all occurrences of the second argument in the array given as first argument. Note the behavior is slightly different from PG.

Examples:

query T
select array_positions(array[array[1],array[2],array[3],array[2],null], array[1]);
----
{1}

query T
select array_positions(array[array[1],array[2],array[3],array[2],null], array[2]);
----
{2,4}

query T
select array_positions(array[array[1],array[2],array[3],array[2],null], null);
----
{5}

query T
select array_positions(array[array[1],array[2],array[3],array[2],null], array[4]);
----
{}

query T
select array_positions(null, 1);
----
NULL

query T
select array_positions(ARRAY[array[1],array[2],array[3],array[2],null], array[3.14]);
----
{}

query T
select array_positions(array[1,NULL,NULL,3], NULL);
----
{2,3}

statement error
select array_positions(array[array[1],array[2],array[3],array[2],null], 1);

statement error
select array_positions(array[array[1],array[2],array[3],array[2],null], array[array[3]]);

statement error
select array_positions(ARRAY[array[1],array[2],array[3],array[2],null], array[true]);