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 里的字段数)