RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

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 в том, что:

  • Записи DELETE состоят только из областей первичного ключа. Исходные значения других областей опущены.
  • Исходные значения любых измененных областей опущены из записей UPDATE.

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