Documentation PostgreSQL 9.4.26 > Internes > Écrire un wrapper de données distantes > Fonctions d'aide pour les wrapper de données distantes | |
Routines callback des wrappers de données distantes | Planification de la requête avec un wrapper de données distantes |
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 * 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 * 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.