SPI_modifytuple

Name

SPI_modifytuple -- 通过替换一个给出行的选定的字段创建一行

Synopsis

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

如果有的话,哪个新值是空(参阅 SPI_execute_plan 获取其格式)

返回值

修改后的新行,在上层执行者环境里分配;只有在 rowNULL 的时候为 NULL

出错时,SPI_result 设置为下列数值:

SPI_ERROR_ARGUMENT

如果 relNULL,或者如果 rowNULL, 或者如果 ncols 小于或者等于 0,或者 colnumNULL, 或者如果 valuesNULL

SPI_ERROR_NOATTRIBUTE

如果 colnum 包含一个无效的字段编号(小于或者等于 0 或者大于 row 里的字段数)