Skip to main content

IndexInfo

Struct IndexInfo 

Source
pub struct IndexInfo {
    pub name: Vec<u8>,
    pub folded: Vec<u8>,
    pub root: u32,
    pub unique: bool,
    pub columns: Vec<IndexColumnInfo>,
    pub partial_sql: Option<Vec<u8>>,
    pub origin: IndexOrigin,
    pub conflict: Option<ConflictAction>,
    pub prefix_rows: Vec<i64>,
    pub analysed_rows: Option<i64>,
    pub metric: Option<IndexMetric>,
}
Expand description

An index over a table.

Fields§

§name: Vec<u8>

The index name.

§folded: Vec<u8>

The ASCII-folded lookup key.

§root: u32

The root page of the index B-tree.

§unique: bool

Whether the index enforces uniqueness.

§columns: Vec<IndexColumnInfo>

The key columns, in order.

§partial_sql: Option<Vec<u8>>

The partial-index predicate, as written.

§origin: IndexOrigin

Where the index came from.

§conflict: Option<ConflictAction>

The ON CONFLICT clause the constraint that created it carried.

§prefix_rows: Vec<i64>

For each leading prefix of the key, the average number of rows sharing it, as ANALYZE measured.

Empty until the schema has been analysed, which is the usual state and not an error: the planner falls back to SQLite’s own guesses, and those guesses are what make an unanalysed plan match the reference’s.

§analysed_rows: Option<i64>

How many entries the index itself holds, as ANALYZE measured.

The same number as the table’s row count for an ordinary index, and a different one for a partial index, which holds only the rows its predicate accepted. It is what lets the planner price reading the whole of such an index against scanning the table it is on - 120 entries against 6,000 rows, in the case this was found on.

None until the schema has been analysed.

§metric: Option<IndexMetric>

The distance a vector index minimises, when it is one the planner may trust to answer for it. See IndexMetric.

Trait Implementations§

Source§

impl Clone for IndexInfo

Source§

fn clone(&self) -> Self

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 IndexInfo

Source§

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

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

impl Eq for IndexInfo

Source§

impl PartialEq for IndexInfo

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for IndexInfo

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.