On Mon, 24 May 2021 at 20:53, Andreas Joseph Krogh wrote:
>
> Hi, I have this, for historical reasons:
>
> CREATE AGGREGATE array_aggarray(anyarray) (
> SFUNC = array_cat, STYPE = anyarray);
>
>
> ...which now breaks in pg-14b1:
>
> ERROR: function array_cat(anyarray, anyarray) does not exist
>
>
> I see the argument data-types have changed from anyarray to
> anycompatiblearray, but that doesn't really tell me anything.
>
> Do I have to change the signature of my aggregate to take anycompatiblearray
> as argument?
Yeah you'll need to do that or write your own transition function that
takes an anyarray. The docs mention:
"the sfunc must take N+1 arguments, the first being of type state_data_type"
array_cat no longer takes anyarray.
regression=# \dfS array_cat
List of functions
Schema | Name| Result data type | Argument data
types | Type
+---+++--
pg_catalog | array_cat | anycompatiblearray | anycompatiblearray,
anycompatiblearray | func
(1 row)
This was changed in [1].
David
[1]
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=9e38c2bb5093ceb0c04d6315ccd8975bd17add66