SPI_modifytuple — cria uma linha substituindo os campos selecionados de uma determinada linha
HeapTuple SPI_modifytuple(Relationrel, HeapTuplerow, intncols, int *colnum, Datum *values, const char *nulls)
A função SPI_modifytuple cria uma nova linha
substituindo os novos valores nas colunas selecionadas, e copiando
as colunas da linha original nas demais posições.
A linha de entrada não é modificada.
A nova linha é retornada no contexto do executor superior.
Esta função só pode ser usada enquanto conectado à SPI.
Caso contrário, irá retornar NULL e definir
SPI_result como SPI_ERROR_UNCONNECTED.
Relation relUsado apenas como origem do descritor de linha da linha. (Passar uma relação em vez de um descritor de linha é um uso incorreto.)
HeapTuple rowlinha a ser modificada
int ncolsnúmero de colunas a serem alteradas
int * colnum
matriz de comprimento ncols, contendo os
números das colunas que devem ser alteradas
(os números das colunas começam em 1)
Datum * values
matriz de comprimento ncols, contendo os
novos valores para as colunas especificadas
const char * nulls
matriz de comprimento ncols, descrevendo
quais novos valores são nulos
Se nulls for NULL então
SPI_modifytuple assume que nenhum novo valor
é nulo.
Caso contrário, cada entrada na matriz nulls
deverá ser ' ' se o valor do parâmetro
correspondente não for nulo, ou 'n' se o valor
do parâmetro correspondente for nulo.
(Neste último caso, o valor real na entrada correspondente em
values não importa.)
Note que nulls não é uma cadeia de caracteres
de texto, e sim uma matriz:
não há necessidade do terminador '\0'.
a nova linha com modificações, alocada no contexto do executor
superior, ou NULL em caso de erro
(veja SPI_result para obter uma indicação de erro)
Em caso de erro, SPI_result é definido da seguinte
forma:
SPI_ERROR_ARGUMENT
se rel for NULL, ou se
row for NULL, ou se
ncols for menor ou igual a 0, ou se
colnum for NULL, ou se
values for NULL.
SPI_ERROR_NOATTRIBUTE
se colnum contiver um número de coluna
inválido (menor ou igual a 0, ou maior que o número de colunas
em row)
SPI_ERROR_UNCONNECTEDse a SPI não estiver ativa