As the error says, you need to specify your $1as array (integers):
PREPARE prep_select_data (int[]) AS
SELECT
$1 || ARRAY[id], $1, *
FROM
tbl_data
WHERE
id = ANY($1);
I changed ARRAY[$1, id]to $1 || ARRAY[id], so the result looks like this:
EXECUTE prep_select_data ('{1, 2}');
?column? | ?column? | id | value
----------+----------+----+-------
{1,2,1} | {1,2} | 1 | aaa
{1,2,2} | {1,2} | 2 | bbb
This is because (from doc ):
multidimensional arrays must have matching extents for each dimension. a mismatch causes an error report.
source
share