From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Make index_set_state_flags() transactional |
Date: | 2020-09-14 04:58:38 |
Message-ID: | E1kHgZa-0000hh-Rt@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Make index_set_state_flags() transactional
3c84046 is the original commit that introduced index_set_state_flags(),
where the presence of SnapshotNow made necessary the use of an in-place
update. SnapshotNow has been removed in 813fb03, so there is no actual
reasons to not make this operation transactional.
Note that while making the operation more robust, using a transactional
operation in this routine was not strictly necessary as there was no use
case for it yet. However, some future features are going to need a
transactional behavior, like support for CREATE/DROP INDEX CONCURRENTLY
with partitioned tables, where indexes in a partition tree need to have
all their pg_index.indis* flags updated in the same transaction to make
the operation stable to the end-user by keeping partition trees
consistent, even with a failure mid-flight.
REINDEX CONCURRENTLY uses already transactional updates when swapping
the old and new indexes, making this change more consistent with the
index-swapping logic.
Author: Michael Paquier
Reviewed-by: Anastasia Lubennikova
Discussion: https://postgr.es/m/20200903080440.GA8559@paquier.xyz
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/83158f74d3ab8dd48aed92e84b6207562992d13d
Modified Files
--------------
src/backend/catalog/index.c | 19 ++++---------------
1 file changed, 4 insertions(+), 15 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2020-09-14 05:16:24 | pgsql: Fix typos. |
Previous Message | Peter Eisentraut | 2020-09-14 04:53:56 | pgsql: Message fixes and style improvements |