On Wed, 2023-06-21 at 07:53 +0900, Michael Paquier wrote: > I am not sure to understand this last sentence. REINDEX on a > partitioned table builds a list of the indexes to work on in the > first > transaction processing the command in ReindexPartitions(), and there > is no need to process partitioned indexes as these have no storage, > so > your suggestion is a no-op?
What I meant is that if you do: CREATE TABLE p(i INT, j INT) PARTITION BY RANGE (i); CREATE TABLE p0 PARTITION OF p FOR VALUES FROM (00) TO (10); CREATE TABLE p1 PARTITION OF p FOR VALUES FROM (10) TO (20); CREATE INDEX p_idx ON p (i); CREATE INDEX special_idx ON p0 (j); GRANT MAINTAIN ON p TO foo; \c - foo REINDEX TABLE p; That would reindex p0_i_idx and p1_i_idx, but skip special_idx. That might be too confusing, but feels a bit more consistent permissions- wise. Regards, Jeff Davis