pgsql: Back-patch "Refactor code in tablecmds.c to check and process ta - Mailing list pgsql-committers

From Noah Misch
Subject pgsql: Back-patch "Refactor code in tablecmds.c to check and process ta
Date
Msg-id E1stE0k-000kif-JF@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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.79.nmisch@google.com

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/dc845383cd12dcbb09b468b2eea94bf549528a4b

Modified Files
--------------
src/backend/commands/tablecmds.c | 210 ++++++++++++++++++++++-----------------
src/include/commands/tablecmds.h |   4 +
2 files changed, 123 insertions(+), 91 deletions(-)


pgsql-committers by date:

Previous
From: Noah Misch
Date:
Subject: pgsql: Fix data loss at inplace update after heap_update().
Next
From: Noah Misch
Date:
Subject: pgsql: Fix use of uninitialized value in previous commit.