SPI_modifytuple

名前

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

概要

HeapTuple SPI_modifytuple(Relation rel, HeapTuple row, ncols, colnum, Datum * values, const char * nulls)

説明

SPI_modifytupleは、選択された列は新しい値で置き換え、その他の位置は元の行の列をコピーした、新しい行を作成します。 入力行は変更されません。

引数

Relation rel

行の行記述子のソースとしてのみ使用されます。 (行記述子ではなくリレーションを渡すことは設計ミスです。)

HeapTuple row

変更される行。

int ncols

colnum配列の列番号の数。

int * colnum

(1から始まる)変更される列番号の配列。

Datum * values

指定された列の新しい値。

const char * Nulls

もしあれば、どの値がNULLかを表します。 (書式についてはSPI_execpを参照して下さい。)

戻り値

変更された新しい行。上位エグゼキュータコンテキストに割り当てられます。 rowNULLの場合のみNULL です。

エラー時、SPI_resultが以下のように設定されます。

SPI_ERROR_ARGUMENT

relNULLの場合、rowNULLの場合、ncolsが0以下の場合、colnumNULLの場合、valuesNULLの場合。

SPI_ERROR_NOATTRIBUTE

colnumが無効な列番号を持つ場合。 (0以下、rowの列数以上)