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(), которая вернет SQLITE_CORRUPT. Точно так же попытка использовать patchset blob со старыми версиями sqlite3changeset_xxx API также вызывает ошибку SQLITE_CORRUPT.
Поскольку поля "old.*" непервичного ключа опущены, никакие конфликты SQLITE_CHANGESET_DATA нельзя обнаружить или сообщить, если patchset передается к sqlite3changeset_apply() API. Другой конфликт работает таким же образом, как с changeset.
Изменения в patchset упорядочены таким же образом, как в changeset, произведенном sqlite3session_changeset() (то есть, все изменения для единственной таблицы группируются, таблицы появляются в порядке, в котором они были присоединены к объекту сессии).