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
- 如果有的话,哪个新值是空(参阅 - SPI_execute_plan获取其格式)
 
 
返回值
修改后的新行,在上层执行者环境里分配;只有在 row 是 NULL 的时候为 NULL
On error, SPI_result is set as follows:
- SPI_ERROR_ARGUMENT
- 如果 rel 是 NULL ,或者如果 row 是 NULL ,或者如果 ncols 小于或者等于 0 ,或者 colnum 是 NULL ,或者如果 values 是 NULL 
- SPI_ERROR_NOATTRIBUTE
- 如果 colnum 包含一个无效的字段编号(小于或者等于 0 或者大于 row 里的字段数)