Skip to main content

CompiledQuery

Struct CompiledQuery 

Source
pub struct CompiledQuery {
    pub sql: String,
    pub binds: Vec<BindValue>,
    pub shape_hash: ShapeHash,
    pub driving_table: DrivingTable,
    pub hints: ExecutionHints,
}
Expand description

A fully compiled query ready for execution against SQLite.

Fields§

§sql: String

The generated SQL text.

§binds: Vec<BindValue>

Positional bind parameters for the SQL.

§shape_hash: ShapeHash

Structural shape hash for caching.

§driving_table: DrivingTable

The driving table chosen by the query planner.

§hints: ExecutionHints

Execution hints derived from the query shape.

Implementations§

Source§

impl CompiledQuery

Source

pub fn adapt_fts_for_kind( &self, prop_table_exists: bool, prop_table_name: &str, ) -> (String, Vec<BindValue>)

Adapt a DrivingTable::FtsNodes compiled query’s SQL and binds for the per-kind FTS property table layout.

compile_query produces SQL that references the legacy global fts_node_properties table. At execution time the coordinator must decide whether to rewrite that reference to the per-kind fts_props_<kind> table (when it exists) or strip the property FTS UNION arm entirely (when it does not).

The caller (the coordinator) performs the sqlite_master existence check and resolves the per-kind table name. fathomdb-query has no rusqlite dependency, so the check must remain outside this crate.

Bind positions in compile_query-generated FTS SQL are fixed:

  • ?1 = text (chunk FTS)
  • ?2 = kind (chunk filter)
  • ?3 = text (prop FTS)
  • ?4 = kind (prop filter)
  • ?5+ = fusable/residual predicates

When prop_table_exists is true the helper removes the fp.kind = ?4 clause (the per-kind table is already filtered by construction) and drops ?4 from the bind list.

When prop_table_exists is false the helper strips the entire property FTS UNION arm and drops both ?3 and ?4 from the bind list.

Trait Implementations§

Source§

impl Clone for CompiledQuery

Source§

fn clone(&self) -> CompiledQuery

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for CompiledQuery

Source§

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

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

impl PartialEq for CompiledQuery

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Eq for CompiledQuery

Source§

impl StructuralPartialEq for CompiledQuery

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<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, 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.