L'implémentation JIT de
    PostgreSQL peut intégrer le corps des fonctions
    de type C et internal, ainsi que les
    opérateurs basés sur ces fonctions. Voir Section 32.1.2.
    Pour le faire pour les fonctions au sein des extensions, la définition de
    ces fonctions doit être disponible. En utilisant PGXS pour construire une extension pour un
    serveur compilé avec le support JIT LLVM, les fichiers nécessaires seront
    automatiquement installés.
   
    Les fichiers adéquats doivent être installés dans
    $pkglibdir/bitcode/$extension/
    et un résumé de ceux-ci dans
    $pkglibdir/bitcode/$extension.index.bc, où
    $pkglibdir est le répertoire retourné par
    pg_config --pkglibdir et $extension
    le nom (basename) de la librairie partagée de
    l'extension.
    
      Pour les fonctions construites dans PostgreSQL
      même, le bitcode est installé dans
      $pkglibdir/bitcode/postgres.
     
PostgreSQL fournit une implémentation du JIT basée sur LLVM. L'interface au fournisseur du JIT est ouverte et le fournisseur peut être changé sans recompiler (bien qu'actuellement, le processus de construction fournit seulement des données de support pour LLVM). Le fournisseur actif est choisi par le GUC jit_provider.
     Un fournisseur JIT est chargé en chargeant dynamiquement
     la librairie partagée indiquée. Pour la situer, le chemin de recherche de
     librairie habituel est utilisé. Pour fournir les callbacks du fournisseur
     JIT et pour indiquer que la librairie est bien un fournisseur
     JIT, cette dernière doit fournir une fonction C nommée
     _PG_jit_provider_init. À cette fonction est passée
     une structure qui doit être remplie avec les pointeurs des fonctions
     callback pour les différentes actions.
     
struct JitProviderCallbacks
{
    JitProviderResetAfterErrorCB reset_after_error;
    JitProviderReleaseContextCB release_context;
    JitProviderCompileExprCB compile_expr;
};
extern void _PG_jit_provider_init(JitProviderCallbacks *cb);