Índice
A interface de programação servidor (Server Programming Interface/SPI) dá aos desenvolvedores de funções C definidas pelo usuário a capacidade de executar comandos SQL dentro suas funções ou procedimentos. A SPI é um conjunto de funções de interface para simplificar o acesso ao analisador, planejador e executor. A SPI também faz algum gerenciamento de memória.
As linguagens procedurais disponíveis fornecem vários meios para executar comandos SQL a partir de funções. A maioria desses recursos é baseado na SPI, portanto essa documentação também pode ser útil para os usuários dessas linguagens.
Note que se um comando chamado via SPI falhar, o controle não será retornado para a função C. Em vez disso, a transação ou subtransação na qual a função C é executada será desfeita. (Isso pode parecer surpreendente, visto que a maioria das funções da SPI possui convenções de retorno de erro documentadas. No entanto, essas convenções se aplicam apenas a erros detectados pelas próprias funções da SPI.) É possível recuperar o controle após um erro estabelecendo uma subtransação própria em torno das chamadas à SPI que podem falhar.
As funções da SPI retornam um resultado não
negativo em caso de sucesso (por meio de um valor inteiro retornado,
ou na variável global SPI_result
, conforme
descrito abaixo).
Em caso de erro, será retornado um resultado negativo ou
NULL
.
Os arquivos de código-fonte que usam a SPI devem
incluir o arquivo de cabeçalho executor/spi.h
.