int sqlite3session_patchset( sqlite3_session *pSession, /* Session object */ int *pnPatchset, /* OUT: Size of buffer at *ppPatchset */ void **ppPatchset /* OUT: Buffer containing patchset */ );
Patchset 與 Changeset 之間的差異如下:
Patchset blob 可與所有 sqlite3changeset_xxx API 函式的最新版本搭配使用,但 sqlite3changeset_invert() 除外,如果傳遞 patchset 給它,它會傳回 SQLITE_CORRUPT。同樣地,嘗試將 patchset blob 與舊版 sqlite3changeset_xxx API 搭配使用,也會引發 SQLITE_CORRUPT 錯誤。
由於非主鍵「old.*」欄位會被省略,如果將 patchset 傳遞給 sqlite3changeset_apply() API,則無法偵測或回報任何 SQLITE_CHANGESET_DATA 衝突。其他衝突類型的工作方式與 changeset 相同。
Patchset 中的變更排序方式與 sqlite3session_changeset() 函式所產生的 changeset 相同(亦即,單一資料表的變更會全部群組在一起,資料表會按照附加到 session 物件的順序顯示)。