Флаги типа синхронизации
#define SQLITE_SYNC_NORMAL 0x00002 #define SQLITE_SYNC_FULL 0x00003 #define SQLITE_SYNC_DATAONLY 0x00010
Когда SQLite вызывает метод xSync() объекта sqlite3_io_methods, он использует комбинацию этих целочисленных значений в качестве второго аргумента.
Когда используется флаг SQLITE_SYNC_DATAONLY, это означает, что операция синхронизации должна только записать данные на постоянное хранилище. Информация о узле не должна записываться. Если младшие четыре бита флага равны SQLITE_SYNC_NORMAL, это означает использование обычной семантики fsync(). Если младшие четыре бита равны SQLITE_SYNC_FULL, это означает использование стиля Mac OS X fullsync вместо fsync().
Не путайте флаги SQLITE_SYNC_NORMAL и SQLITE_SYNC_FULL с настройками PRAGMA synchronous=NORMAL и PRAGMA synchronous=FULL. Предикат synchronous определяет, когда происходят вызовы метода xSync VFS, и применяется единообразно ко всем платформам. Флаги SQLITE_SYNC_NORMAL и SQLITE_SYNC_FULL определяют, насколько энергичны или строги или сильны операции синхронизации, и различие имеет значение только на Mac OSX для кода SQLite по умолчанию. (Реализации VFS от третьих сторон также могут различать SQLITE_SYNC_NORMAL и SQLITE_SYNC_FULL, но среди операционных систем, нативно поддерживаемых SQLite, только Mac OSX учитывает это различие.)
См. также списки Объектов, Констант и Функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/c_sync_dataonly.html