Re: array_cat anycompatible change is breaking xversion upgrade tests

x4mmm@yandex-team.ru

From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Justin Pryzby <pryzby@telsasoft.com>, Andrew Dunstan <andrew@dunslane.net>, pgsql-hackers@lists.postgresql.org, Bruce Momjian <bruce@momjian.us>
Date: 2022-06-24T18:28:31Z
Lists: pgsql-hackers
> On 24 Jun 2022, at 18:30, Justin Pryzby <pryzby@telsasoft.com> wrote:
> 
> On Fri, Jun 24, 2022 at 04:09:46PM +0500, Andrey Borodin wrote:
>> Hi everyone!
>> 
>> Sorry for bumping old thread.
> 
> Please find this newer thread+patch here ;)
> https://www.postgresql.org/message-id/20220614230949.GX29853@telsasoft.com

Oops. Let's discard my patch and I'll review yours. Many thanks for fixing this stuff :)

> On 24 Jun 2022, at 19:06, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> 
> Justin Pryzby <pryzby@telsasoft.com> writes:
>> I realized that my latest patch would break upgrades from old servers, which do
>> not have array_position/s nor width_bucket, so ::reprocedure would fail.  Maybe
>> Andrey's way is better (checking proname rather than its OID).
> 
> proname is dangerous, because there's nothing stopping users from
> adding more functions with the same name.
> 
> Just use a server-version-dependent list of regprocedure OIDs.

Server-version-dependent list of oids seems more error prone. I think we can just check proname by the list and oid < 16384.

Thanks!

Best regards, Andrey Borodin.


Commits

  1. doc: add PG 14 relnote item about array function references

  2. Work around cross-version-upgrade issues created by commit 9e38c2bb5.