PostgreSQL

De Cliss XXI
Sauter à la navigation Sauter à la recherche

Ordre de tri

Le tri des SELECT ... ORDER BY est déterminé par le paramètre LC_COLLATE.

Ce paramètre est défini au niveau du cluster, et au niveau de la base depuis la version 8.4 [1][2]. Au 2010-04 il n'est pas possible de modifier cette valeur après-coup, il faut recréer le cluster [3] ou la base [4].

La valeur par défaut (définie par initdb à l'installation) est apparemment dérivée de la langue par défaut du système, ou peut-être de la langue de l'utilisateur 'root' au moment de l'installation - je n'ai pas trouvé l'appel à initdb qui en est responsable.

En résumé: ce n'est pas encore au point.

Typiquement: si votre LC_COLLATE est "C", la valeur par défaut, l'ordre de tri sera sensible à la casse (d'abord les majuscules A-Z, après les minuscules a-z). Cela aura un impact sur vos applications, dès que vous utilisez ORDER_BY.