On Mon, 24 May 2021 at 20:53, Andreas Joseph Krogh <andr...@visena.com> 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


Reply via email to