Re: pg_upgrade (12->14) fails on aggregate
x4mmm@yandex-team.ru
From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Robert Haas <robertmhaas@gmail.com>,
"David G. Johnston" <david.g.johnston@gmail.com>,
Petr Vejsada <pve@paymorrow.com>,
pgsql-hackers@lists.postgresql.org
Date: 2022-06-25T10:34:49Z
Lists: pgsql-bugs, pgsql-hackers
> On 25 Jun 2022, at 01:28, Justin Pryzby <pryzby@telsasoft.com> wrote:
>
> But what I wrote already shows what you want.
Just tested that, you are right. My version was printing name, I didn't know regproc prints so nice definition.
> this is my latest.
> <0001-WIP-pg_upgrade-check-detect-old-polymorphics-from-pr.patch>
Let's rename "databases_with_old_polymorphics.txt" to somthing like "old_polymorphics.txt" or maybe even "incompatible_polymorphics_usage.txt"?
I think you will come up with a better name, my point is here everythin is in "databases", and "old" doesn't describe essence of the problem.
Also, let's check that oid of used functions belong to system catalog (<16384)? We don't care about user-defined functions with the same name.
And, probably, we can do this unconditionally:
if (old_cluster.major_version >= 9500)
appendPQExpBufferStr(&old_polymorphics,
Nothing bad will happen if we blacklist usage of nonexistent functions. I see there's a lot of code to have a dynamic list, if you think this exclusion for pre-9.5 is justified - OK, from my POV we can keep this code.
These comment is unneeded too:
// "AND aggtranstype='anyarray'::regtype
Thank you!
Best regards, Andrey Borodin.
Commits
-
Tighten pg_upgrade's new check for non-upgradable anyarray usages.
- c7e21e966464 15.0 landed
- 08385ed26196 16.0 landed
- 9783413cbff9 14.5 landed
-
Fix pg_upgrade to detect non-upgradable anyarray usages.
- c069f427855a 15.0 landed
- 175e60a5e35e 14.5 landed
- 09878cdd489f 16.0 landed
-
Remove pg_upgrade support for upgrading from pre-9.2 servers.
- e469f0aaf3c5 15.0 cited