On Fri, Apr 09, 2021 at 12:09:43PM -0400, Tom Lane wrote: > Finally, 0003 might be a bit controversial: it changes the stored > prosrc for new-style SQL functions to be the query text of the CREATE > FUNCTION command. The main argument I can see being made against this > is that it'll bloat the pg_proc entry. But I think that that's > not a terribly reasonable concern
Such storage cost should be acceptable, but ... > The real value of 0003 of course would be to get an error cursor at > runtime A key benefit of $SUBJECT is the function body following DDL renames: create table foo (); insert into foo default values; create function count_it() returns int begin atomic return (select count(*) from foo); end; select count_it(); insert into foo default values; alter table foo rename to some_new_long_table_name; select count_it(); -- still works After the rename, any stored prosrc is obsolete. To show accurate error cursors, deparse prosqlbody and use that in place of prosrc.