PostgreSQL 7.4 Documentation
Prev | Fast Backward |  | Fast Forward | Next

# SPI_modifytuple

## Name

SPI_modifytuple -- create a row by replacing selected fields of a given row

## Synopsis

    HeapTuple SPI_modifytuple(Relation rel, HeapTuple row, ncols, 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 (count starts at 1)

Datum * values

  new values for the specified columns

const char * Nulls

  which new values are null, if any (see `SPI_execp` 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)

Prev | Home | Next
SPI_copytupleintoslot | Up | SPI_freetuple