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)