

   Plusieurs fonctions d'aide sont exportées à partir du cœur du serveur, pour
   que les auteurs de wrappers de données distantes puissent accéder facilement
   aux attributs des objets en relation avec les wrappers, comme par exemple les
   options d'un wrapper. Pour utiliser une de ces fonctions, vous avez besoin
   d'inclure le fichier en-tête foreign/foreign.h dans
   votre fichier source. Cet en-tête définit aussi les types de structures qui
   sont renvoyés par ces fonctions.
  
ForeignDataWrapper * GetForeignDataWrapperExtended(Oid fdwid, bits16 flags);
   Cette fonction renvoie un objet ForeignDataWrapper
   pour le FDW avec l'OID précisé.
   Un objet ForeignDataWrapper contient
   les propriétés du FDW (voir foreign/foreign.h
   pour les détails).
   flags est un masque de bit OU indiquant
   des options supplémentaires. Il peut prendre la valeur
   FDW_MISSING_OK, auquel cas un NULL
   est retourné comme résultat à l'appelant au lieu d'une erreur d'objet
   indéfini.
  
ForeignDataWrapper * GetForeignDataWrapper(Oid fdwid);
   Cette fonction renvoie un objet ForeignDataWrapper
   pour le wrapper de données distantes de l'OID spécifié. Un objet
   ForeignDataWrapper contient les propriétés du
   wrapper (voir foreign/foreign.h pour les détails).
  
ForeignServer * GetForeignServerExtended(Oid serverid, bits16 flags);
   Cette fonction renvoie un objet ForeignServer
   pour le FDW avec l'OID précisé.
   Un objet ForeignServer contient
   les propriétés du FDW (voir foreign/foreign.h
   pour les détails).
   flags est un masque de bit OU indiquant
   des options supplémentaires. Il peut prendre la valeur
   FSV_MISSING_OK, auquel cas un NULL
   est retourné comme résultat à l'appelant au lieu d'une erreur d'objet
   indéfini.
  
ForeignServer * GetForeignServer(Oid serverid);
   Cette fonction renvoie un objet ForeignServer
   pour le serveur distant de l'OID donné. Un objet
   ForeignServer contient les propriétés du serveur
   (voir foreign/foreign.h pour les détails).
  
UserMapping * GetUserMapping(Oid userid, Oid serverid);
   Cette fonction renvoie un objet UserMapping pour
   la correspondance utilisateur du rôle donné sur le serveur donné.
   (S'il n'existe pas de correspondance utilisateur, la fonction renvoie
   la correspondance pour PUBLIC ou une erreur si cette
   dernière n'existe pas non plus.) Un objet
   UserMapping contient les propriétés de la
   correspondance utilisateur (voir foreign/foreign.h
   pour les détails).
  
ForeignTable * GetForeignTable(Oid relid);
   Cette fonction renvoie un objet ForeignTable pour
   la table distante de l'OID donné. Un objet
   ForeignTable contient les propriétés de la table
   distante (voir foreign/foreign.h pour les détails).
  
List * GetForeignColumnOptions(Oid relid, AttrNumber attnum);
   Cette fonction renvoie les opérations du wrapper de données distantes par
   colonne pour l'OID de la table distante donnée et le numéro de l'attribut
   sous la forme d'une liste de DefElem. NIL est
   renvoyé sur la colonne n'a pas d'options.
  
Certains types d'objets ont des fonctions de recherche basées sur le nom en plus de celles basées sur l'OID :
ForeignDataWrapper * GetForeignDataWrapperByName(const char *name, bool missing_ok);
   Cette fonction renvoie un objet ForeignDataWrapper
   pour le wrapper de données distante du nom indiqué. Si le wrapper n'est pas
   trouvé, cette fonction renvoie NULL si missing_ok vaut true, et renvoie
   une erreur sinon.
  
ForeignServer * GetForeignServerByName(const char *name, bool missing_ok);
   Cette fonction renvoie un objet ForeignServer pour
   le serveur distant du nom donné. Si le serveur n'est pas trouvé, cette
   fonction renvoie NULL si missing_ok vaut true, et renvoie une erreur sinon.