PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 07/08/2023 17:19:20

patoka
Membre

Mots triés différemment entre Postgresql 12 et Postgresql 15

Bonjour,
On vient de passer à Postgreql 15. Le tri alphabétique des chaînes de caractères a changé. Par exemple pour la requête "SELECT name FROM my_table ORDER BY name DESC" on a
Postgresql 12

"Allée de l'Ilôt des Lacs"
"Allée de l'Îlot des Lacs"
"Allée de l'Îlot des Lacs"

Postgresql 15

"Allée de l'Îlot des Lacs"
"Allée de l'Îlot des Lacs"
"Allée de l'Ilôt des Lacs"

La différence se situe au niveau des caractères avec accent circonflexe. Mais on a conservé la même configuration entre les deux instances.

Encoding | Collate         | Ctype
UTF8       | fr_FR.UTF-8 | fr_FR.UTF-8

Dans postgresql.conf il y a:

# These settings are initialized by initdb, but they can be changed.
lc_messages = C # locale for system error message
                                        # strings
lc_monetary = C # locale for monetary formatting
lc_numeric = C # locale for number formatting
lc_time = C # locale for time formatting

Je souhaite votre aide pour comprendre le problème et le résoudre.
Merci

Hors ligne

#2 07/08/2023 18:26:27

gleu
Administrateur

Re : Mots triés différemment entre Postgresql 12 et Postgresql 15

N'auriez-vous pas profité du changement de version de PostgreSQL pour mettre à jour tous les paquets systèmes, voire la version du système d'exploitation ?


Guillaume.

Hors ligne

#3 08/08/2023 09:52:08

patoka
Membre

Re : Mots triés différemment entre Postgresql 12 et Postgresql 15

Tout à fait, on est passé aussi de Debian stretch à Debian bullyse.

Hors ligne

#4 08/08/2023 13:40:05

rjuju
Administrateur

Re : Mots triés différemment entre Postgresql 12 et Postgresql 15

Le problème vient très probablement de la mise à jour de glibc (2.24 sur strech et 2.31 sur bullseye).  Vous devriez avoir le même comportement au niveau de l'OS avec un simple "sort" en utilisant la même collation.

Hors ligne

#5 09/08/2023 10:50:59

patoka
Membre

Re : Mots triés différemment entre Postgresql 12 et Postgresql 15

Oui, j'ai pu reproduire le même comportement avec la commande "sort". Merci beaucoup.

Hors ligne

#6 09/08/2023 16:01:47

dverite
Membre

Re : Mots triés différemment entre Postgresql 12 et Postgresql 15

La différence se situe au niveau des caractères avec accent circonflexe

En fait il y a beaucoup plus de différences.
Quelques exemples ici: https://blog-postgresql.verite.pro/2018 … grade.html

Seule la collation "C" ou "POSIX" offre une garantie absolue de permanence des tris lors des montées de version des OS, et de tri identique entre OS différents.

Hors ligne

#7 10/08/2023 10:00:27

patoka
Membre

Re : Mots triés différemment entre Postgresql 12 et Postgresql 15

merci

Hors ligne

Pied de page des forums