From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Add TABLESPACE option to REINDEX |
Date: | 2021-02-04 05:41:57 |
Message-ID: | E1l7XOv-00048p-GN@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Add TABLESPACE option to REINDEX
This patch adds the possibility to move indexes to a new tablespace
while rebuilding them. Both the concurrent and the non-concurrent cases
are supported, and the following set of restrictions apply:
- When using TABLESPACE with a REINDEX command that targets a
partitioned table or index, all the indexes of the leaf partitions are
moved to the new tablespace. The tablespace references of the non-leaf,
partitioned tables in pg_class.reltablespace are not changed. This
requires an extra ALTER TABLE SET TABLESPACE.
- Any index on a toast table rebuilt as part of a parent table is kept
in its original tablespace.
- The operation is forbidden on system catalogs, including trying to
directly move a toast relation with REINDEX. This results in an error
if doing REINDEX on a single object. REINDEX SCHEMA, DATABASE and
SYSTEM skip system relations when TABLESPACE is used.
Author: Alexey Kondratov, Michael Paquier, Justin Pryzby
Reviewed-by: Álvaro Herrera, Michael Paquier
Discussion: https://postgr.es/m/8a8f5f73-00d3-55f8-7583-1375ca8f6a91@postgrespro.ru
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/c5b286047cd698021e57a527215b48865fd4ad4e
Modified Files
--------------
doc/src/sgml/ref/reindex.sgml | 38 +++++++
src/backend/catalog/index.c | 47 +++++++-
src/backend/commands/indexcmds.c | 111 ++++++++++++++++++
src/bin/psql/tab-complete.c | 4 +-
src/include/catalog/index.h | 3 +
src/test/regress/input/tablespace.source | 123 ++++++++++++++++++++
src/test/regress/output/tablespace.source | 183 ++++++++++++++++++++++++++++++
7 files changed, 505 insertions(+), 4 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2021-02-04 07:07:21 | pgsql: Clarify comment in tablesync.c |
Previous Message | Tom Lane | 2021-02-04 00:38:56 | pgsql: Avoid crash when rolling back within a prepared statement. |