Small. Fast. Reliable.
Choose any three.

Session Module C Interface

Произведите Patchset от объекта сессии

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() (то есть, все изменения для единственной таблицы группируются, таблицы появляются в порядке, в котором они были присоединены к объекту сессии).