PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 15.10 » Internes » Écrire un wrapper de données distantes » Fonctions d'aide pour les wrapper de données distantes

59.3. Fonctions d'aide pour les 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 *
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.