From: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Bruce Momjian <bruce(at)momjian(dot)us> |
Subject: | Re: array_cat anycompatible change is breaking xversion upgrade tests |
Date: | 2021-05-25 16:14:58 |
Message-ID: | 20210525161458.GZ3676@telsasoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, May 20, 2021 at 07:35:10PM -0400, Tom Lane wrote:
> Justin Pryzby <pryzby(at)telsasoft(dot)com> writes:
> > On Wed, Nov 04, 2020 at 07:43:51PM -0500, Tom Lane wrote:
> >> As was discussed in the thread leading up to that commit, modifying the
> >> signature of array_cat and friends could break user-defined operators
> >> and aggregates based on those functions. It seems to me that the
> >> usability gain from this change is worth that cost, but it is causing
> >> an issue for xversion tests.
>
> > But I think this should be called out as an incompatible change in the release
> > notes.
>
> If it was not, yes it should be.
@Bruce, I propose:
Some system functions are changed to accept "anycompatiblearray" arguments.
This causes failures when restoring a database backup or running pg_restore if
there were aggregate functions defined using those functions with their
original argument types.
Such aggregate functions should be dropped before upgrade/restore and then
re-created afterwards using the "anycompatible" functions. The affected
functions are: array_append, array_prepend, array_cat, array_position,
array_positions, array_remove, array_replace, and width_bucket.
(Re-defining the function before upgrading is possible when upgrading from v13,
only).
--
Justin
From | Date | Subject | |
---|---|---|---|
Next Message | Andy Fan | 2021-05-25 16:25:41 | Re: How can the Aggregation move to the outer query |
Previous Message | Tom Lane | 2021-05-25 16:09:18 | Re: Possible pointer var TupleDesc rettupdesc used not initialized (src/backend/optimizer/util/clauses.c) |