SYNOPSIS
HeapTuple SPI_modifytuple(Relation rel, HeapTuple row, int ncols,
int * colnum, Datum * values, const char * nulls)
DESCRIPTION
SPI_modifytuple creates a new row by substituting new values for selected columns, copying the original row's columns at other positions. The input row is not modified.
ARGUMENTS
Relation rel
- Used only as the source of the row descriptor for the row. (Passing a relation rather than a row descriptor is a misfeature.)
HeapTuple row
- row to be modified
int ncols
- number of column numbers in the array colnum
int * colnum
- array of the numbers of the columns that are to be changed (column numbers start at 1)
Datum * values
- new values for the specified columns
const char * Nulls
- which new values are null, if any (see SPI_execute_plan for the format)
RETURN VALUE
new row with modifications, allocated in the upper executor context; NULL only if row is NULL
On error, SPI_result is set as follows:
SPI_ERROR_ARGUMENT
- if rel is NULL, or if row is NULL, or if ncols is less than or equal to 0, or if colnum is NULL, or if values is NULL.
SPI_ERROR_NOATTRIBUTE
- if colnum contains an invalid column number (less than or equal to 0 or greater than the number of column in row)