SPI_modifytuple — crea una fila reemplazando campos seleccionados de una fila dada
HeapTuple SPI_modifytuple(Relationrel, HeapTuplerow, intncols, int *colnum, Datum *values, const char *nulls)
SPI_modifytuple crea una nueva fila sustituyendo nuevos valores
para las columnas seleccionadas, copiando las columnas de la fila original en las demás posiciones.
La fila de entrada no se modifica. La nueva fila se devuelve en el contexto superior del ejecutor.
Esta función solo se puede usar mientras se está conectado a SPI.
De lo contrario, devuelve NULL y establece SPI_result en
SPI_ERROR_UNCONNECTED.
Relation relse usa solo como origen del descriptor de fila para la fila (pasar una relación en lugar de un descriptor de fila es una mala práctica).
HeapTuple rowfila a modificar
int ncolsnúmero de columnas a cambiar
int * colnum
un array de longitud ncols, que contiene los números
de las columnas que se van a cambiar (los números de columna comienzan en 1)
Datum * values
un array de longitud ncols, que contiene los
nuevos valores para las columnas especificadas
const char * nulls
un array de longitud ncols, que describe qué
nuevos valores son nulos
Si nulls es NULL, entonces
SPI_modifytuple asume que ningún valor nuevo es nulo.
De lo contrario, cada entrada del array nulls
debe ser ' ' si el nuevo valor correspondiente no es nulo,
o 'n' si el nuevo valor correspondiente es nulo. (En este último caso,
el valor real en la entrada correspondiente de values no importa).
Tenga en cuenta que nulls no es una cadena de texto, solo un array:
no necesita un terminador '\0'.
nueva fila con las modificaciones, asignada en el contexto superior del ejecutor,
o NULL en caso de error
(consulte SPI_result para una indicación de error)
En caso de error, SPI_result se establece de la siguiente manera:
SPI_ERROR_ARGUMENT
si rel es NULL, o si
row es NULL, o si ncols
es menor o igual a 0, o si colnum es
NULL, o si values es NULL.
SPI_ERROR_NOATTRIBUTE
si colnum contiene un número de columna no válido (menor
o igual a 0 o mayor que el número de columnas en row)
SPI_ERROR_UNCONNECTEDsi SPI no está activo