SPI_returntuple
SPI_returntuple — подготовить строку для возврата в виде Datum
Синтаксис
HeapTupleHeader SPI_returntuple(HeapTuplerow, TupleDescrowdesc)
Описание
SPI_returntuple делает копию строки в верхнем контексте исполнителя и возвращает её в форме типа Datum. Чтобы выдать результат, полученный указатель остаётся только преобразовать в Datum функцией PointerGetDatum.
Эту функцию можно использовать только когда установлено подключение к SPI. В противном случае она возвращает NULL и устанавливает в SPI_result значение SPI_ERROR_UNCONNECTED.
Заметьте, что эту операцию следует применять в функциях, объявленных как возвращающие составные типы. В триггерах она не применяется; чтобы вернуть изменённую строку из триггера, используйте SPI_copytuple.
Аргументы
HeapTuplerowстрока, подлежащая копированию
TupleDescrowdescдескриптор строки (передавайте каждый раз один дескриптор для более эффективного кеширования)
Возвращаемое значение
HeapTupleHeader, указывающий на скопированную строку, или NULL в случае ошибки (SPI_result содержит код ошибки)
SPI_returntuple
SPI_returntuple — prepare to return a tuple as a Datum
Synopsis
HeapTupleHeader SPI_returntuple(HeapTuplerow, TupleDescrowdesc)
Description
SPI_returntuple makes a copy of a row in the upper executor context, returning it in the form of a row type Datum. The returned pointer need only be converted to Datum via PointerGetDatum before returning.
This function can only be used while connected to SPI. Otherwise, it returns NULL and sets SPI_result to SPI_ERROR_UNCONNECTED.
Note that this should be used for functions that are declared to return composite types. It is not used for triggers; use SPI_copytuple for returning a modified row in a trigger.
Arguments
HeapTuplerowrow to be copied
TupleDescrowdescdescriptor for row (pass the same descriptor each time for most effective caching)
Return Value
HeapTupleHeader pointing to copied row, or NULL on error (see SPI_result for an error indication)