From f087d63a45b5935b5c15cecb7d88f140d5cc8b7c Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 3 Mar 2020 10:12:49 +0900 Subject: Preserve pg_index.indisclustered across REINDEX CONCURRENTLY If the flag value is lost, a CLUSTER query following REINDEX CONCURRENTLY could fail. Non-concurrent REINDEX is already handling this case consistently. Author: Justin Pryzby Discussion: https://postgr.es/m/20200229024202.GH29456@telsasoft.com Backpatch-through: 12 --- src/test/regress/sql/create_index.sql | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/test/regress/sql') diff --git a/src/test/regress/sql/create_index.sql b/src/test/regress/sql/create_index.sql index e4c4272a2c9..fb7da725ff0 100644 --- a/src/test/regress/sql/create_index.sql +++ b/src/test/regress/sql/create_index.sql @@ -852,6 +852,15 @@ SELECT obj_description('testcomment_idx1'::regclass, 'pg_class'); REINDEX TABLE CONCURRENTLY testcomment ; SELECT obj_description('testcomment_idx1'::regclass, 'pg_class'); DROP TABLE testcomment; +-- Check that indisclustered updates are preserved +CREATE TABLE concur_clustered(i int); +CREATE INDEX concur_clustered_i_idx ON concur_clustered(i); +ALTER TABLE concur_clustered CLUSTER ON concur_clustered_i_idx; +REINDEX TABLE CONCURRENTLY concur_clustered; +SELECT indexrelid::regclass, indisclustered FROM pg_index + WHERE indrelid = 'concur_clustered'::regclass; +DROP TABLE concur_clustered; + -- Partitions -- Create some partitioned tables CREATE TABLE concur_reindex_part (c1 int, c2 int) PARTITION BY RANGE (c1); -- cgit v1.2.3