Il n'est pas possible d'exécuter des commandes de contrôle des
   transactions, telles que COMMIT et
   ROLLBACK via une fonction SPI comme
   SPI_execute. Cependant, il existe des fonctions
   d'interface séparées qui permettent le contrôle des transactions via SPI.
  
   Il n'est généralement pas sûr et sensible de démarrer et terminer des
   transactions dans des fonctions définies par l'utilisateur et appelables en
   SQL sans prendre en compte le contexte dans lequel elles sont appelées. Par
   exemple, une limite de transaction dans le milieu d'une fonction qui fait
   partie d'une expression SQL complexe, elle-même partie d'une commande SQL,
   aura probablement comme résultat des erreurs internes obscures ou des
   crashs. Les fonctions d'interface présentées ici ont principalement comme
   but d'être utilisées par les implémentations de langage de procédure pour
   supporter la gestion des transactions dans les procédures niveau SQL appelées par la
   commande CALL, en prenant en compte le contexte de
   l'appel à CALL. Les procédures utilisant SPI implémentées en C
   peuvent implémenter la même logique mais les détails de cette
   implémentation dépassent le cadre de cette documentation.