The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/18/sql-alterschema.html Description:
The ALTER SCHEMA page has no Notes section, and renaming a schema has one consequence that is easy to miss. Objects that store parsed references follow the rename: views, functions with SQL-standard bodies (BEGIN ATOMIC), and privileges, including ALTER DEFAULT PRIVILEGES entries. Function bodies written as string constants (AS $$ ... $$, and every non-SQL language) are stored as text, so a schema-qualified reference inside them keeps the old name and fails at the next call. On 14.10, after ALTER SCHEMA old RENAME TO newsch, a LANGUAGE sql function containing SELECT count(*) FROM old.t fails with ERROR: relation "old.t" does not exist, while the BEGIN ATOMIC version returns the right count. Suggested note: "Renaming a schema does not update references to it inside function and procedure bodies written as string constants, since those are parsed only at execution time (see CREATE FUNCTION). Views and SQL-standard function bodies are updated automatically."
