Refactor some code for ALTER TABLE SET LOGGED/UNLOGGED in tablecmds.c

Michael Paquier <michael@paquier.xyz>

Commit: 9f87da1cffda0e07ff3babcfa84abe9e849ccd95
Author: Michael Paquier <michael@paquier.xyz>
Date: 2024-08-29T06:31:30Z
Releases: 18.0
Refactor some code for ALTER TABLE SET LOGGED/UNLOGGED in tablecmds.c

Both sub-commands use the same routine to switch the relpersistence of a
relation, duplicated the same checks, and used a style inconsistent with
access methods and tablespaces.

SET LOGEED/UNLOGGED is refactored to avoid any duplication, setting the
reason why a relation rewrite happens within ATPrepChangePersistence().
This shaves some code.

Discussion: https://postgr.es/m/ZiiyGFTBNkqcMQi_@paquier.xyz

Files

PathChange+/−
src/backend/commands/tablecmds.c modified +14 −30

Discussion