IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

9.10. Fonctions de support enum

Pour les types enum (décrit dans Section 8.7, � Types énumération �), il existe plusieurs fonctions qui autorisent une programmation plus claire sans coder en dur les valeurs particuli�res d'un type enum. Elles sont listées dans Tableau 9.29, � Fonctions de support enum �. Les exemples supposent un type enum créé ainsi :

CREATE TYPE couleurs AS ENUM ('rouge', 'orange', 'jaune', 'vert', 'bleu', 'violet');

Tableau 9.29. Fonctions de support enum

Fonction Description Exemple Résultat de l'exemple
enum_first(anyenum) Renvoie la premi�re valeur du type enum en entrée enum_first(null::couleurs) rouge
enum_last(anyenum) Renvoie la derni�re valeur du type enum en entrée enum_last(null::couleurs) violet
enum_range(anyenum) Renvoie toutes les valeurs du type enum en entrée dans un tableau trié enum_range(null::couleurs) {rouge,orange,jaune,vert,bleu,violet}
enum_range(anyenum, anyenum) Renvoie les éléments entre deux valeurs enum données dans un tableau trié. Les valeurs doivent �tre du m�me type enum. Si le premier param�tre est NULL, le résultat se termine avec la derni�re valeur du type enum. enum_range('orange'::couleurs, 'vert'::couleurs) {orange,jaune,vert}
enum_range(NULL, 'vert'::couleurs) {rouge,orange,jaune,vert}
enum_range('orange'::couleurs, NULL) {orange,jaune,vert,bleu,violet}

En dehors de la forme � deux arguments de enum_range, ces fonctions ne tiennent pas compte de la valeur qui leur est fournie ; elles ne s'attachent qu'au type de donnée déclaré. NULL ou une valeur spécifique du type peut �tre passée, le résultat est le m�me. Il est plus commun d'appliquer ces fonctions � la colonne d'une table ou � l'argument d'une fonction qu'� un nom de type en dur, comme le sugg�rent les exemples.