★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

SPI_modifytuple

SPI_modifytuple — 与えられた行の選択フィールドを置き換えた行を作成する

概要

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

説明

SPI_modifytupleは、選択された列は新しい値で置き換え、その他の位置は元の行の列をコピーした、新しい行を作成します。 入力行は変更されません。 新しい行は上位エクゼキュータコンテキスト内に返されます。

この関数はSPIに接続されている間にのみ使うことができます。 それ以外の場合はNULLを返し、SPI_resultSPI_ERROR_UNCONNECTEDにセットします。

引数

Relation rel

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

HeapTuple row

変更される行

int ncols

変更された列数

int * colnum

変更される列番号を含む、ncols長の配列(列番号は1から始まります)

Datum * values

指定された列の新しい値を含む、ncols長の配列

const char * nulls

新しい値のどれがNULLかを記述する、ncols長の配列

nullsNULLであれば、SPI_modifytupleはどの新しい値もnullでないとみなします。 さもなければ、nulls配列の各項目は、対応するパラメータが非NULLならば' '、対応するパラメータがNULLならば'n'です。 (後者の場合、values内の対応する値は注意されません。) nullsはテキスト文字列ではなく単なる配列であることに注意してください。 '\0'終端は必要ありません。

戻り値

変更された新しい行。上位エクゼキュータコンテキストに割り当てられます。 エラー時はNULLです。 (エラーの表示についてはSPI_resultを参照してください)

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

SPI_ERROR_ARGUMENT

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

SPI_ERROR_NOATTRIBUTE

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

SPI_ERROR_UNCONNECTED

SPIが動作していない場合