pg_cast #
   Le catalogue pg_cast stocke les chemins de
   conversion de type de donnée, qu'il s'agisse de ceux par défaut ou ceux
   définis par un utilisateur.
  
   pg_cast ne représente pas toutes les conversions de
   type que le système connaît, seulement celles qui ne peuvent pas se déduire
   à partir de règles génériques. Par exemple, la conversion entre un domaine
   et son type de base n'est pas représentée explicitement dans
   pg_cast.  Autre exception importante :
   « les conversions automatiques d'entrée/sortie », celles réalisées en
   utilisant les propres fonctions d'entrée/sortie du type de données pour
   convertir vers ou à partir du text ou des autres types de
   chaînes de caractères, ne sont pas représentées explicitement dans
   pg_cast.
  
Tableau 53.10. Colonnes de pg_cast
Type Description  | 
|---|
         Identifiant de ligne  | 
         OID du type de données source  | 
         OID du type de données cible  | 
         OID de la fonction à utiliser pour réaliser la conversion. 0 si la méthode ne requiert pas une fonction.  | 
         
        Indique dans quel contexte la conversion peut être utilisée.
          | 
         
        Indique comment la conversion est effectuée.
          | 
   Les fonctions de transtypage listées dans pg_cast
   doivent toujours prendre le type source de la conversion comme type du
   premier argument et renvoyer le type de destination de la conversion comme
   type de retour. Une fonction de conversion peut avoir jusqu'à trois
   arguments. Le deuxième argument, s'il est présent, doit être de type
   integer ; il reçoit le modificateur de type associé avec le
   type de destination ou 1 s'il n'y en a pas. Le troisième
   argument, s'il est présent, doit être de type boolean ; il
   reçoit true si la conversion est une conversion explicite,
   false sinon.
  
   Il est possible de créer une entrée pg_cast
   dans laquelle les types source et cible sont identiques si la fonction associée
   prend plus d'un argument. De telles entrées représentent les
   « fonctions de forçage de longueur » qui forcent la validité des valeurs de
   ce type pour une valeur particulière du modificateur de type.
  
   Quand une entrée pg_cast possède des types différents
   pour la source et la cible et une fonction qui prend plus d'un
   argument, le transtypage et le forçage de longueur s'effectuent en une
   seule étape. Lorsqu'une telle entrée n'est pas disponible, le forçage
   vers un type qui utilise un modificateur de type implique deux étapes,
   une de transtypage, l'autre pour appliquer le modificateur.