| From: | Álvaro Herrera <alvherre(at)kurilemu(dot)de> |
|---|---|
| To: | Mark Wong <markwkm(at)gmail(dot)com> |
| Cc: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Re: updates for handling optional argument in system functions |
| Date: | 2026-03-03 16:23:58 |
| Message-ID: | 202603031619.ih6a6v4k6hd6@alvherre.pgsql |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 2026-Jan-29, Mark Wong wrote:
> I don't have a solution for the case of a view storing the OID, but Álvaro
> Herrera suggested to me to at least try preventing those OIDs from being
> reused.
>
> I've attached a v3 patch set that introduces src/include/catalog/pg_retired.dat
> to store previously used OIDs and procedure names that the scripts unused_oids
> and renumber_oids.pl can consume to prevent the reuse of retired OIDs.
Thinking about this again, I wonder where did we get the idea that
reusing OIDs would be a problem. How exactly would this happen? When
you pg_upgrade, your views are taken from a `pg_dump --binary-upgrade`
of the original server, and then recreated using the text
representation of the DDL. We don't pass the function OIDs in any way
from the old server to the new server. And there's no other way (than
pg_upgrade) to go from one major version to the next one where the OID
has been reused.
So why did we think this was an actual problem?
--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
Syntax error: function hell() needs an argument.
Please choose what hell you want to involve.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Heikki Linnakangas | 2026-03-03 16:59:34 | Re: Fix bug in multixact Oldest*MXactId initialization and access |
| Previous Message | Melanie Plageman | 2026-03-03 15:52:34 | Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) |