int sqlite3session_patchset( sqlite3_session *pSession, /* Session object */ int *pnPatchset, /* OUT: Size of buffer at *ppPatchset */ void **ppPatchset /* OUT: Buffer containing patchset */ );
补丁集和变更集之间的区别在于
补丁集 Blob 可用于所有最新版本的 sqlite3changeset_xxx API 函数,但 sqlite3changeset_invert() 除外,如果传递给它的是补丁集,它将返回 SQLITE_CORRUPT。类似地,尝试使用旧版本的 sqlite3changeset_xxx API 来使用补丁集 Blob 也会引发 SQLITE_CORRUPT 错误。
由于非主键“old.*”字段被省略,因此如果将补丁集传递给 sqlite3changeset_apply() API,则无法检测或报告 SQLITE_CHANGESET_DATA 冲突。其他冲突类型的工作方式与变更集相同。
补丁集中的更改按与 sqlite3session_changeset() 函数生成的变更集相同的顺序排序(即,同一表的更改分组在一起,表按它们附加到会话对象的顺序出现)。