On 11/4/20 4:10 PM, Tom Lane wrote:
> Declare assorted array functions using anycompatible not anyelement.
>
> Convert array_append, array_prepend, array_cat, array_position,
> array_positions, array_remove, array_replace, and width_bucket
> to use anycompatiblearray. This is a simple extension of commit
> 5c292e6b9 to hit some other places where there's a pretty obvious
> gain in usability from doing so.
>
> Ideally we'd also modify other functions taking multiple old-style
> polymorphic arguments. But most of the remainder are tied into one
> or more operator classes, making any such change a much larger can of
> worms than I desire to open right now.
>
> Discussion: https://postgr.es/m/77675130-89da-dab1-51dd-492c93dcf5d1@postgresfriends.org
>
This patch broke cross-version pg_upgrade testing. I have cured crake
for the moment by having it execute this in the source database:
drop aggregate if exists public.array_cat_accum(anyarray);
drop aggregate if exists public.first_el_agg_any(anyelement);
But I wonder if we really want to make it impossible to upgrade
databases with aggregates that contain these functions?
cheers
andrew