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.