14th September 2023: PostgreSQL 16 Released!
Unsupported versions: 7.3 / 7.2 / 7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.



SPI_modifytuple -- Modifies tuple of relation


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


Relation rel
HeapTuple tuple

Input tuple to be modified

int nattrs

Number of attribute numbers in attnum

int * attnum

Array of numbers of the attributes that are to be changed

Datum * Values

New values for the attributes specified

char * Nulls

Which attributes 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 Modifies a tuple in upper Executor context. See the section on Memory Management.


If successful, a pointer to the new tuple is returned. The new tuple is allocated in upper Executor context (see Memory management). Passed tuple is not changed.