Back-patch "Refactor code in tablecmds.c to check and process tablespace moves"
authorNoah Misch <[email protected]>
Tue, 24 Sep 2024 22:25:24 +0000 (15:25 -0700)
committerNoah Misch <[email protected]>
Tue, 24 Sep 2024 22:25:25 +0000 (15:25 -0700)
commitdc845383cd12dcbb09b468b2eea94bf549528a4b
tree8ff0bf28e2d9ba5400fbcfe507938e18efecb01a
parent8ec99d0b79b236c14660ff2f3beb6ee9747e8f5c
Back-patch "Refactor code in tablecmds.c to check and process tablespace moves"

Back-patch commits 4c9c359d38ff1e2de388eedd860785be6a49201c and
24843297a96d7be16cc3f4b090aacfc6e5e6839e to v13 and v12.  Before those
commits, we held the modifiable copy of the relation's pg_class row
throughout a table_relation_copy_data().  That can last long enough to
copy MaxBlockNumber of data.  A subsequent fix will hold LockTuple() for
the lifespan of that modifiable copy.  By back-patching this first, we
avoid a needless long-duration LOCKTAG_TUPLE.

Discussion: https://postgr.es/m/20231027214946[email protected]
src/backend/commands/tablecmds.c
src/include/commands/tablecmds.h