Полезная информация



SPI_modifytuple -- Creates a tuple by replacing selected fields of a given tuple


SPI_modifytuple(rel, tuple, nattrs, attnum, Values, Nulls)


Relation rel

Used only as source of tuple descriptor for tuple. (Passing a relation rather than a tuple descriptor is a misfeature.)

HeapTuple tuple

Input tuple to be modified

int nattrs

Number of attribute numbers in attnum array

int * attnum

Array of numbers of the attributes that are to be changed

Datum * Values

New values for the attributes specified

char * Nulls

Which new values are NULL, if any



New tuple with modifications

non-NULL if tuple is not NULL and the modify was successful
NULL only if tuple is NULL


SPI_ERROR_ARGUMENT if rel is NULL or tuple is NULL or natts <= 0 or attnum is NULL or Values is NULL.
SPI_ERROR_NOATTRIBUTE if there is an invalid attribute number in attnum (attnum <= 0 or > number of attributes in tuple)


SPI_modifytuple creates a new tuple by substituting new values for selected attributes, copying the original tuple's attributes at other positions. The input tuple is not modified.


If successful, a pointer to the new tuple is returned. The new tuple is allocated in upper Executor context.