Disallow renaming a rule to "_RETURN".

Tom Lane <tgl@sss.pgh.pa.us>

Commit: e99fb3262441b47d88632b2857f03083be67f3e3
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2026-07-04T15:34:26Z
Disallow renaming a rule to "_RETURN".

ON SELECT rules must be named "_RETURN", while other kinds of rules
must not be; this ancient restriction is depended on by various client
code.  We successfully enforced this convention in most places, but
ALTER RULE allowed renaming a non-SELECT rule to "_RETURN".  Notably,
that would break dump/restore, since the eventual CREATE RULE command
would reject the name.

While at it, remove DefineQueryRewrite's hack to substitute "_RETURN"
for the convention that was used before 7.3.  We dropped other
server-side code that supported restoring pre-7.3 dumps some time ago
(notably in e58a59975 and nearby commits), but this bit was missed.

Bug: #19543
Reported-by: Adam Pickering <adamkpickering@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/19543-461228e77f3b32fc@postgresql.org
Backpatch-through: 14

Files

Discussion

Cited messages not in the archive: 19543-461228e77f3b32fc@postgresql.org