Le développeur d'un FDW doit écrire une fonction de gestion (handler) et, en option, une fonction de validation. Les deux fonctions doivent être écrites dans un langage compilé comme le C en utilisant l'interface version-1. Pour les détails sur les conventions d'appel et le chargement dynamique en langage C, voir Section 38.10.
La fonction de gestion renvoie simplement une structure de pointeurs
de fonctions callback qui seront appelées par le planificateur,
l'exécuteur et différentes commandes de maintenance. La plupart du
travail dans l'écriture d'une FDW se
trouve dans l'implémentation de ces fonctions callback. La fonction
de gestion doit être enregistrée dans
PostgreSQL comme ne prenant aucun argument
et renvoyant le pseudo-type fdw_handler
. Les fonctions
callback sont des fonctions en C et ne sont pas visibles ou
appelables avec du SQL. Les fonctions callback sont décrites dans
Section 57.2.
La fonction de validation est responsable de la validation des options
données dans les commandes CREATE
et
ALTER
pour son wrapper de données distantes,
ainsi que pour les serveurs distants, les correspondances
d'utilisateurs et les tables distants utilisant le wrapper. La
fonction de validation doit être enregistrée comme prenant deux
arguments : un tableau de texte contenant les options à
valider et un OID représentant le type d'objet avec lequel les
options sont validées (sous la forme d'un OID du catalogue système
où sera stocké l'objet, donc
ForeignDataWrapperRelationId
,
ForeignServerRelationId
,
UserMappingRelationId
ou
ForeignTableRelationId
).
Si aucune fonction de validation n'est fournie, les options ne sont
pas vérifiées au moment de la création ou de la modification de
l'objet.