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.