Re: [18] Policy on IMMUTABLE functions and Unicode updates
David G. Johnston <david.g.johnston@gmail.com>
From: "David G. Johnston" <david.g.johnston@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Joe Conway <mail@joeconway.com>, Jeff Davis <pgsql@j-davis.com>,
pgsql-hackers@postgresql.org, Daniel Verite <daniel@manitou-mail.org>, Noah Misch <noah@leadboat.com>, Peter Eisentraut <peter@eisentraut.org>, Robert Haas <robertmhaas@gmail.com>, Jeremy Schneider <schneider@ardentperf.com>,
LaurenzAlbe <laurenz.albe@cybertec.at>
Date: 2024-07-16T20:27:28Z
Lists: pgsql-hackers
On Tue, Jul 16, 2024 at 1:16 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Joe Conway <mail@joeconway.com> writes: > > So you are proposing we add STATIC to VOLATILE/STABLE/IMMUTABLE (in the > > third position before IMMUTABLE), give it IMMUTABLE semantics, mark > > builtin functions that deserve it, and document with suitable caution > > statements? > > What is the point of that, exactly? > > I'll agree that the user documentation could use some improvement > in how it describes the volatility levels, but I do not see how > it will reduce anybody's confusion to invent multiple aliases for > what's effectively the same volatility level. Nor do I see a > use-case for actually having multiple versions of "immutable". > Once you've decided you can put something into an index, quibbling > over just how immutable it is doesn't really change anything. > > I'd teach pg_upgrade to inspect the post-upgraded catalog of is-use dependencies and report on any of these it finds and remind the DBA that this latent issue may exist in their system. I agree the core behaviors of the system would remain unchanged and both modes would be handled identically. Though requiring superuser or a predefined role membership to actually use a "static" mode function in an index or generated expression would be an interesting option to consider. David J.