Re: BUG #19483: pg_upgrade fails with orphan records in pg_init_priv catalog table
Hüseyin Demir <huseyin.d3r@gmail.com>
From: Hüseyin Demir <huseyin.d3r@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Laurenz Albe <laurenz.albe@cybertec.at>,
Greg Sabino Mullane <htamfids@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2026-06-25T07:55:59Z
Lists: pgsql-bugs
Hi, > So what I'm thinking today is we apply the putid() fix only in HEAD, > and make dumputils.c ignore unquoted all-numeric roles only if > server version >= 19. This means we don't have a fix for the actually > known problems with old server versions, which is kind of sad, but > given Laurenz's point I don't think a reliable fix is possible with > an unpatched server. > An alternative answer is to back-patch the putid() fix and teach > dumputils.c to consider the server minor version when deciding whether > to reject unquoted all-numeric roles. We don't typically make pg_dump > pay attention to minor versions, but it would provide a pathway for > users to deal with this problem: if you've got dangling grants then > update the old server before dumping. It will require an almost mandatory minor-version update prior to the upgrade, which adds extra friction and a more complex upgrade story for our users since both sides need to be updated. Another point is that quoting all-digit roles alters the aclitem::text representation across psql, extensions, and client apps giving it a much broader behavioral impact than just pg_dump. Finally, it introduces a bit of a maintenance headache for committers, who will have to adjust the macro on HEAD after back-patching to v18. Happy to hear other ideas. Regards, Demir.