ALTER SCHEMA: renaming does not update string-literal function bodies - Mailing list pgsql-docs

From PG Doc comments form
Subject ALTER SCHEMA: renaming does not update string-literal function bodies
Date
Msg-id 179157432663.2048046.109109804107041431@wrigleys.postgresql.org
Whole thread
Responses Re: ALTER SCHEMA: renaming does not update string-literal function bodies
Re: ALTER SCHEMA: renaming does not update string-literal function bodies
List pgsql-docs
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."




pgsql-docs by date:

Previous
From: Matemática A3K
Date:
Subject: Re: Documentation improvement patch
Next
From: "David G. Johnston"
Date:
Subject: Re: Documentation improvement patch