Re: Correct docs re: rewriting indexes when table rewrite is skipped
James Coleman <jtc331@gmail.com>
From: James Coleman <jtc331@gmail.com>
To: Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-03-30T14:04:21Z
Lists: pgsql-hackers
On Tue, Mar 29, 2022 at 11:29 AM Matthias van de Meent <boekewurm+postgres@gmail.com> wrote: > > On Tue, 29 Mar 2022 at 16:04, James Coleman <jtc331@gmail.com> wrote: > > > > Back in 367bc42 (for 9.2!) we "avoid[ed] index rebuild[ing] for > > no-rewrite ALTER TABLE > > .. ALTER TYPE." However the docs still claim that "a table rewrite is > > not needed; but any indexes on the affected columns must still be > > rebuilt." > > Although indexes might indeed not need a rebuild, in many cases they > still do (e.g. when the type changes between text and a domain of text > with a different collation). > > I think that the current state of the docs is better in that regard; > as it explicitly warns for index rebuilds, even when the letter of the > docs is incorrect: there are indeed cases we don't need to rebuild the > indexes; but that would require more elaboration. Admittedly I hadn't thought of that case. But isn't it already covered in the existing docs by the phrase "or an unconstrained domain over the new type"? I don't love the word "or" there because there's a sense in which the first clause "binary coercible to the new type" is still accurate for your example unless you narrowly separate "domain" and "type", but I think that narrow distinction is what's technically there already. That being said, I could instead of removing the clause entirely replace it with something like "indexes may still need to be rebuilt when the new type is a constrained domain". Thoughts? James Coleman
Commits
-
docs: Changing column type doesn't always require an index rebuild.
- fa25bebb827a 15.0 landed