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.