Spec-Zone.ru › SQLite

Генерация набора исправлений из объекта сессии

int sqlite3session_patchset(
  sqlite3_session *pSession,      /* Session object */
  int *pnPatchset,                /* OUT: Size of buffer at *ppPatchset */
  void **ppPatchset               /* OUT: Buffer containing patchset */
);

Различия между набором исправлений и набором изменений заключаются в следующем:

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

Объект набора исправлений может быть использован с актуальными версиями всех функций API sqlite3changeset_xxx, за исключением sqlite3changeset_invert(), которая возвращает SQLITE_CORRUPT, если ей передается набор исправлений. Аналогично, попытка использовать набор исправлений с устаревшими версиями API sqlite3changeset_xxx также вызывает ошибку SQLITE_CORRUPT.

Поскольку поля "old.*" без первичного ключа опущены, конфликты SQLITE_CHANGESET_DATA не могут быть обнаружены или сообщены, если набор исправлений передается в API sqlite3changeset_apply(). Другие типы конфликтов работают так же, как и для наборов изменений.

Изменения в наборе исправлений упорядочены так же, как и для наборов изменений, сгенерированных функцией sqlite3session_changeset() (т. е. все изменения для одной таблицы сгруппированы вместе, таблицы отображаются в порядке, в котором они были подключены к объекту сессии).

См. также списки Объектов, Констант и Функций.

SQLite is in the Public Domain.
https://sqlite.org/session/sqlite3session_patchset.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API