From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Joseph Kennedy <joseph(dot)kennedy(dot)486(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Question about PostgreSQL upgrade from version 12 to version 15 |
Date: | 2024-03-21 11:47:49 |
Message-ID: | 202403211147.emwyiyb5t6wx@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 2024-Mar-21, Joseph Kennedy wrote:
> I'm planning to upgrade my PostgreSQL database from version 12 to
> version 15 using pg_upgrade. After completing the upgrade process, I'm
> curious to know whether it's necessary to reindex the database.
>
> Could anyone please clarify whether reindexing is required after
> completing the upgrade process from PostgreSQL version 12 to version
> 15 using pg_upgrade?
A reindex(*) is necessary for indexes on textual columns(**), and only
if you're also changing the underlying OS version(***) such that the
collation behavior changes. If you're keeping the database on the same
OS version, there's no need to reindex anything.
(*) More than reindex actually: you may need to refresh materialized
views and consider carefully any partition bounds you may have, if you
have any partition keys that include textual columns. Even worse: if
you have FDWs on a Postgres server that queries a table from another
Postgres server with different collation libraries, it could bit you
there too.
(**) textual column in this case means anything that is affected by
collation changes; typically that's things like varchar, text, citext,
etc, for which a collation other than "C" is explicit or implied. You
don't need to do anything for indexes on numbers, dates, geometries,
etc, nor for textual columns where the index is defined with the C
collation.
(***) the underlying C library changes collation rules rather frequently
(especially glibc), because the developers of said libraries don't
consider that this has any important, permanent impact (but it does
impact indexes for Postgres). Most such changes are innocuous, but from
time to time they make changes that wreak havoc. If you're using ICU
collations with your Postgres 12 databases, you may also be affected if
you upgrade from one ICU version to another.
Joe Conway gave a very good presentation on this topic recently:
https://www.postgresql.eu/events/fosdem2024/schedule/session/5127-collation-challenges-sorting-it-out/
--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
"Por suerte hoy explotó el califont porque si no me habría muerto
de aburrido" (Papelucho)
From | Date | Subject | |
---|---|---|---|
Next Message | Dominique Devienne | 2024-03-21 12:16:35 | Re: pg_dumpall with flag --no-role-passwords omits roles comments as well |
Previous Message | Francisco Olarte | 2024-03-21 11:41:13 | Re: Dropping a temporary view? |