SPI_modifytuple
Синтаксис
HeapTuple SPI_modifytuple(Relation rel, HeapTuple row, int ncols,
                          int * colnum, Datum * values, const char * nulls)Описание
SPI_modifytuple создаёт новую строку, подставляя новые значения для указанных колонок и копируя исходное содержимое остальных колонок. Исходная строка не изменяется.
Аргументы
- Relation rel
- Используется только в качестве дескриптора строки. (Передача отношения вместо собственно дескриптора строки — нехорошая особенность.) 
- HeapTuple row
- строка, подлежащая изменению 
- int ncols
- число изменяемых колонок 
- int * colnum
- массив длины ncols, содержащий номера изменяемых колонок (начиная с 1) 
- Datum * values
- массив длины ncols, содержащий новые значения указанных колонок 
- const char * nulls
- массив длины ncols, описывающий, в каких колонках передаётся NULL - Если в nulls передаётся NULL, - SPI_modifytupleсчитает, что ни один из параметров не равен NULL. В противном случае элемент массива nulls должен содержать ' ', если значение соответствующего параметра не NULL, либо 'n', если это значение — NULL. (В последнем случае значение, переданное в соответствующем элементе values, не учитывается.) Заметьте, что nulls — это не текстовая строка, а просто массив: ноль '\0' в конце не нужен.
Возвращаемое значение
новая строка с изменениями, размещённая в верхнем контексте исполнителя; NULL, только если row — NULL
В случае ошибки в SPI_result устанавливается:
- SPI_ERROR_ARGUMENT
- если rel — NULL, либо row — NULL, либо ncols меньше или равно 0, либо colnum — NULL, либо values — NULL 
- SPI_ERROR_NOATTRIBUTE
- если colnum содержит недопустимый номер колонки (меньше или равен 0, либо больше числа колонок в строке row) 
| Пред. | Начало | След. | 
| SPI_returntuple | Уровень выше | SPI_freetuple |