/ Check-in [3a65a1fc]
Login
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix comments on pager flag settings to include synchronous=EXTRA.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 3a65a1fc0fd2408c6984153801ec5dcd5211c897
User & Date: drh 2016-03-08 13:56:02
Context
2016-03-08
14:16
Fix ATTACH to use the symbolic name PAGER_SYNCHRONOUS_FULL rather than an integer literal. check-in: c4e192a0 user: drh tags: trunk
14:01
Merge coverage improvements and comment fixes from trunk. check-in: 58023bfc user: drh tags: apple-osx
13:56
Fix comments on pager flag settings to include synchronous=EXTRA. check-in: 3a65a1fc user: drh tags: trunk
02:59
Simplified error detection in the xBestIndex processing. check-in: 82ca2131 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/pager.c.

  3456   3456   
  3457   3457   /*
  3458   3458   ** Adjust settings of the pager to those specified in the pgFlags parameter.
  3459   3459   **
  3460   3460   ** The "level" in pgFlags & PAGER_SYNCHRONOUS_MASK sets the robustness
  3461   3461   ** of the database to damage due to OS crashes or power failures by
  3462   3462   ** changing the number of syncs()s when writing the journals.
  3463         -** There are three levels:
         3463  +** There are four levels:
  3464   3464   **
  3465   3465   **    OFF       sqlite3OsSync() is never called.  This is the default
  3466   3466   **              for temporary and transient files.
  3467   3467   **
  3468   3468   **    NORMAL    The journal is synced once before writes begin on the
  3469   3469   **              database.  This is normally adequate protection, but
  3470   3470   **              it is theoretically possible, though very unlikely,
................................................................................
  3475   3475   **    FULL      The journal is synced twice before writes begin on the
  3476   3476   **              database (with some additional information - the nRec field
  3477   3477   **              of the journal header - being written in between the two
  3478   3478   **              syncs).  If we assume that writing a
  3479   3479   **              single disk sector is atomic, then this mode provides
  3480   3480   **              assurance that the journal will not be corrupted to the
  3481   3481   **              point of causing damage to the database during rollback.
         3482  +**
         3483  +**    EXTRA     This is like FULL except that is also syncs the directory
         3484  +**              that contains the rollback journal after the rollback
         3485  +**              journal is unlinked.
  3482   3486   **
  3483   3487   ** The above is for a rollback-journal mode.  For WAL mode, OFF continues
  3484   3488   ** to mean that no syncs ever occur.  NORMAL means that the WAL is synced
  3485   3489   ** prior to the start of checkpoint and that the database file is synced
  3486   3490   ** at the conclusion of the checkpoint if the entire content of the WAL
  3487   3491   ** was written back into the database.  But no sync operations occur for
  3488   3492   ** an ordinary commit in NORMAL mode with WAL.  FULL means that the WAL
  3489   3493   ** file is synced following each commit operation, in addition to the
  3490         -** syncs associated with NORMAL.
         3494  +** syncs associated with NORMAL.  There is no difference between FULL
         3495  +** and EXTRA for WAL mode.
  3491   3496   **
  3492   3497   ** Do not confuse synchronous=FULL with SQLITE_SYNC_FULL.  The
  3493   3498   ** SQLITE_SYNC_FULL macro means to use the MacOSX-style full-fsync
  3494   3499   ** using fcntl(F_FULLFSYNC).  SQLITE_SYNC_NORMAL means to do an
  3495   3500   ** ordinary fsync() call.  There is no difference between SQLITE_SYNC_FULL
  3496   3501   ** and SQLITE_SYNC_NORMAL on platforms other than MacOSX.  But the
  3497   3502   ** synchronous=FULL versus synchronous=NORMAL setting determines when