#define SQLITE_SYNC_NORMAL 0x00002 #define SQLITE_SYNC_FULL 0x00003 #define SQLITE_SYNC_DATAONLY 0x00010
Когда SQLite вызывает метод xSync() объекта sqlite3_io_methods, это использует комбинацию этих целочисленных значений как второй аргумент.
Когда флаг SQLITE_SYNC_DATAONLY используется, это означает, что синхронизирующая операция должна только сбросить данные на диск. Информация о Inode не должна сброситься. Если нижние четыре бита флага равняются SQLITE_SYNC_NORMAL, это означает использовать нормальный fsync(). Если нижние четыре бита флага равняются SQLITE_SYNC_FULL, это означает использовать стиль Mac OS X fullsync вместо fsync().
Не путайте флаги SQLITE_SYNC_NORMAL и SQLITE_SYNC_FULL с с PRAGMA synchronous=NORMAL и PRAGMA synchronous=FULL. Синхронные прагмы определяют, когда обращения к методу xSync VFS происходят, и применяется однородно для всех платформ. Флаги SQLITE_SYNC_NORMAL и SQLITE_SYNC_FULL определяют, насколько строги синхронизирующие операции и имеют значение только на MAC OSX для кода SQLite по умолчанию. Сторонние внедрения VFS могли бы также сделать различие между SQLITE_SYNC_NORMAL и SQLITE_SYNC_FULL, но среди операционных систем, изачально поддерживаемых SQLite, только Mac OSX это делает.