SPI_modifytuple

SPI_modifytuple — cria uma linha substituindo os campos selecionados de uma determinada linha

Sinopse

HeapTuple SPI_modifytuple(Relation rel, HeapTuple row, int ncols,
                          int * colnum, Datum * values, const char * nulls)

Descrição

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.

Argumentos

Relation rel

Usado apenas como origem do descritor de linha da linha. (Passar uma relação em vez de um descritor de linha é um uso incorreto.)

HeapTuple row

linha a ser modificada

int ncols

nú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'.

Valor retornado

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_UNCONNECTED

se a SPI não estiver ativa