This page in other versions: Unsupported versions: 7.1 / 7.2 / 7.3



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.

Submit correction

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.

Privacy Policy | About PostgreSQL
Copyright © 1996-2018 The PostgreSQL Global Development Group