Preserve clustered index after rewrites with ALTER TABLE
authorMichael Paquier
Mon, 6 Apr 2020 02:05:54 +0000 (11:05 +0900)
committerMichael Paquier
Mon, 6 Apr 2020 02:05:54 +0000 (11:05 +0900)
commit41faafbd75a5c70fa94bf57e408e6b29c4425ceb
tree13c11d213e101cc400fbf586183fe3ed2c58e489
parent1ca97af3ede47486a513df44cd8ac2fc242c1631
Preserve clustered index after rewrites with ALTER TABLE

A table rewritten by ALTER TABLE would lose tracking of an index usable
for CLUSTER.  This setting is tracked by pg_index.indisclustered and is
controlled by ALTER TABLE, so some extra work was needed to restore it
properly.  Note that ALTER TABLE only marks the index that can be used
for clustering, and does not do the actual operation.

Author: Amit Langote, Justin Pryzby
Reviewed-by: Ibrar Ahmed, Michael Paquier
Discussion: https://postgr.es/m/20200202161718[email protected]
Backpatch-through: 9.5
src/backend/commands/tablecmds.c
src/backend/utils/cache/lsyscache.c
src/include/utils/lsyscache.h
src/test/regress/expected/alter_table.out
src/test/regress/sql/alter_table.sql