SPI_modifytuple — 透過替換給定行的選定欄位來建立新行
HeapTuple SPI_modifytuple(Relationrel, HeapTuplerow, intncols, int *colnum, Datum *values, const char *nulls)
SPI_modifytuple 透過替換選定列的新值並複製原始行中其他位置的列來建立一個新行。原始行不會被修改。新行將在上層執行器上下文中返回。
此函式只能在連線到 SPI 時使用。否則,它將返回 NULL 並將 SPI_result 設定為 SPI_ERROR_UNCONNECTED。
Relation rel僅用作行的行描述符的來源。(傳遞關係而不是行描述符是一個錯誤的功能。)
HeapTuple row要修改的行
int ncols要更改的列數
int * colnum長度為 ncols 的陣列,包含要更改的列的編號(列編號從 1 開始)
Datum * values長度為 ncols 的陣列,包含指定列的新值
const char * nulls長度為 ncols 的陣列,描述哪些新值是 NULL
如果 nulls 為 NULL,則 SPI_modifytuple 假定沒有新值是 NULL。否則,nulls 陣列的每個條目在對應的 values 條目非 NULL 時應為 ' ',在對應的 values 條目為 NULL 時應為 'n'。(後一種情況,對應的 values 條目中的實際值無關緊要。)請注意,nulls 不是一個文字字串,而只是一個數組:它不需要 '\0' 終止符。
修改後的新行,分配在上層執行器上下文中,或在出錯時為 NULL(有關錯誤指示,請參閱 SPI_result)
出錯時,SPI_result 的設定如下:
SPI_ERROR_ARGUMENT如果 rel 為 NULL,或者 row 為 NULL,或者 ncols 小於或等於 0,或者 colnum 為 NULL,或者 values 為 NULL。
SPI_ERROR_NOATTRIBUTE如果 colnum 包含無效的列編號(小於或等於 0 或大於 row 中的列數)
SPI_ERROR_UNCONNECTED如果 SPI 未啟用
如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步說明之處,請使用 此表單 報告文件問題。