]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Prevent altering partitioned table's rowtype, if it's used elsewhere.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 6 Jan 2022 21:46:46 +0000 (16:46 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 6 Jan 2022 21:46:46 +0000 (16:46 -0500)
commitccc7c3ad86b67cd85805824d40782fa5b92b1fc5
tree16f20cea790e6ba2233a2f1977690d845321039c
parentada0e91f9d435b8c1c185107f3ba4e80966b7d82
Prevent altering partitioned table's rowtype, if it's used elsewhere.

We disallow altering a column datatype within a regular table,
if the table's rowtype is used as a column type elsewhere,
because we lack code to go around and rewrite the other tables.
This restriction should apply to partitioned tables as well, but it
was not checked because ATRewriteTables and ATPrepAlterColumnType
were not on the same page about who should do it for which relkinds.

Per bug #17351 from Alexander Lakhin.  Back-patch to all supported
branches.

Discussion: https://postgr.es/m/17351-6db1870f3f4f612a@postgresql.org
src/backend/commands/tablecmds.c
src/test/regress/expected/alter_table.out
src/test/regress/sql/alter_table.sql