SPI_modifytuple

Name

SPI_modifytuple -- 与えられたタプルの選択されたフィールドを置き換えたタプルを作成します。

Synopsis

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

入力

Relation rel

タプルのタプル記述子のソースとしてのみ使用されます。(タプル記述子ではなくリレーションを渡す機能はありません。)

HeapTuple tuple

変更される、入力タプルです。

int nattrs

attnum 配列内の属性番号の数です。

int * attnum

変更される属性番号の配列です。

Datum * Values

指定した属性の新しい値です。

char * Nulls

もしあれば、どの新しい値がNULLかを示します。

出力

HeapTuple

変更された、新しいタプルです。

tuple が NULL ではなく、かつ、変更に成功した場合は 非 NULL です。
tuple が NULL の場合のみ、NULL です。

SPI_result

rel が NULL、もしくは、tuple が NULL、もしくは、natts <= 0 もしくは、attnum が NULL、もしくは、values が NULL の場合、SPI_ERROR_ARGUMENT です。
attnum 内に無効な属性番号があった場合、SPI_ERROR_NOATTRIBUTE です。 (attnum <= 0 もしくは > タプル内の属性数)

説明

SPI_modifytuple は選択された属性を新しい値に置き換え、元のタプルの属性をコピーして、別の場所にタプルを新しく作成します。入力タプルは変更されません。

使用方法

成功した場合、新しいタプルのポインタが返されます。新しいタプルは上位エグゼキュータのコンテキスト内に割り当てられます。