diff options
| author | levlam <levlam@telegram.org> | 2022-10-06 01:47:45 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2022-10-06 01:47:45 +0300 |
| commit | 6176272d600f9873a30482e74efafb9e3a795eeb (patch) | |
| tree | 14e1a77e45678147c52025471fe3cf71783df4e3 /sqlite | |
| parent | 4af5c4f5dd2160d940feae5b149d3882da39bdca (diff) | |
SQLite: fix handling of SQLITE_DEFAULT_SYNCHRONOUS macros.
Diffstat (limited to 'sqlite')
| -rw-r--r-- | sqlite/sqlite/sqlite3.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sqlite/sqlite/sqlite3.c b/sqlite/sqlite/sqlite3.c index 87801250f..4fb5bc5e5 100644 --- a/sqlite/sqlite/sqlite3.c +++ b/sqlite/sqlite/sqlite3.c @@ -60743,17 +60743,24 @@ act_like_temp_file: pPager->memDb = (u8)memDb; pPager->readOnly = (u8)readOnly; assert( useJournal || pPager->tempFile ); - pPager->noSync = pPager->tempFile; + int level = SQLITE_DEFAULT_SYNCHRONOUS + 1; + pPager->noSync = pPager->tempFile || level==PAGER_SYNCHRONOUS_OFF; if( pPager->noSync ){ assert( pPager->fullSync==0 ); assert( pPager->extraSync==0 ); assert( pPager->syncFlags==0 ); assert( pPager->walSyncFlags==0 ); }else{ - pPager->fullSync = 1; - pPager->extraSync = 0; + pPager->fullSync = level>=PAGER_SYNCHRONOUS_FULL ?1:0; + pPager->extraSync = level==PAGER_SYNCHRONOUS_EXTRA ?1:0; pPager->syncFlags = SQLITE_SYNC_NORMAL; - pPager->walSyncFlags = SQLITE_SYNC_NORMAL | (SQLITE_SYNC_NORMAL<<2); + pPager->walSyncFlags = (pPager->syncFlags<<2); + if( pPager->fullSync ){ + pPager->walSyncFlags |= pPager->syncFlags; + } +#if SQLITE_DEFAULT_CKPTFULLFSYNC + pPager->walSyncFlags |= (SQLITE_SYNC_FULL<<2); +#endif } /* pPager->pFirst = 0; */ /* pPager->pFirstSynced = 0; */ |
