Skip to main content

JournalMode

Enum JournalMode 

Source
pub enum JournalMode {
    Wal,
    Mvcc,
}
Expand description

Selects the durability + concurrency story a database operates under. Toggled by PRAGMA journal_mode = … (see crate::sql::pragma::execute_pragma).

  • JournalMode::Wal (default) — every read goes through the legacy table → pager path; every write fsyncs a per-page commit frame. This is the only mode pre-Phase-11 builds knew about, and it’s what file-format-v5 + WAL-format-v2 files produce by default.
  • JournalMode::Mvcc — opts the database into Phase 11’s multi-version concurrency control. Enables snapshot-isolated reads (consult MvStore first, fall back to the pager) and BEGIN CONCURRENT writes (Phase 11.4). On-disk format is unchanged; the WAL header’s clock_high_water byte range carries the persisted clock value either way.

Phase 11.3 ships the parser surface and the per-database setting; the read path doesn’t change behaviour yet. The Mvcc value is observable via the PRAGMA read form so callers can confirm the toggle landed.

Variants§

§

Wal

Default — legacy WAL-backed pager. Every commit fsyncs a page-level frame; every read consults staged → wal_cache → on_disk.

§

Mvcc

Phase 11 MVCC + BEGIN CONCURRENT. Same on-disk format as Wal; the in-memory MvStore sits in front of the pager for reads, and writes go through commit-time validation.

Implementations§

Source§

impl JournalMode

Source

pub fn from_str_lossless(s: &str) -> Option<Self>

Parses a PRAGMA value (case-insensitive). Returns None for unrecognized inputs so the caller can surface a typed unknown journal_mode error with the bad string.

Source

pub fn as_str(&self) -> &'static str

The lowercase string form the PRAGMA read renders.

Trait Implementations§

Source§

impl Clone for JournalMode

Source§

fn clone(&self) -> JournalMode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for JournalMode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for JournalMode

Source§

fn default() -> JournalMode

Returns the “default value” for a type. Read more
Source§

impl Display for JournalMode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for JournalMode

Source§

fn eq(&self, other: &JournalMode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for JournalMode

Source§

impl Eq for JournalMode

Source§

impl StructuralPartialEq for JournalMode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.