Skip to main content

CreateIndexStatement

Struct CreateIndexStatement 

Source
pub struct CreateIndexStatement {
    pub name: String,
    pub table: String,
    pub column: String,
    pub method: IndexMethod,
    pub if_not_exists: bool,
    pub included_columns: Vec<String>,
    pub partial_predicate: Option<Expr>,
    pub expression: Option<Expr>,
    pub extra_columns: Vec<String>,
    pub is_unique: bool,
}

Fields§

§name: String§table: String§column: String§method: IndexMethod

Optional USING <method> clause. v2.0 recognises hnsw (NSW graph for vector kNN); unspecified is the default B-tree index.

§if_not_exists: bool

IF NOT EXISTS — engine returns CommandOk no-op when the index name already exists, instead of raising DuplicateIndex.

§included_columns: Vec<String>

v6.8.0 — INCLUDE (col1, col2, …) columns. Identifies the non-key columns the planner should treat as “covered” by this index when checking whether a query can run as an index-only scan. Empty when no INCLUDE clause was given.

§partial_predicate: Option<Expr>

v6.8.1 — WHERE <expr> partial-index predicate. Only rows for which <expr> evaluates truthy enter the index; queries whose WHERE clause’s canonical Display form matches this expression’s Display form can be served by the partial index. Stored as a parsed Expr so the engine re-uses the existing evaluation path; storage persists the Display form on the catalog snapshot.

§expression: Option<Expr>

v6.8.2 — expression-based index. When Some(expr), the index key is the result of expr evaluated on each row (e.g. CREATE INDEX … (lower(name))). The column field still names the primary column the expression touches so existing planner shortcuts that resolve a column position stay valid. None = plain column-reference index (the legacy shape).

§extra_columns: Vec<String>

v7.9.14 — extra column names after the leading column in a multi-column CREATE INDEX … (a, b, c). mailrs F2. The planner today still only uses the leading column for index seeks; the extras are tracked verbatim so the same DDL round-trips through WAL replay + catalog snapshot, and so the engine can emit a clear warning at INDEX CREATE time that only the leading column is currently honoured. Composite BTree index keys land in v7.10.

§is_unique: bool

v7.9.29 — CREATE UNIQUE INDEX …. When true the engine enforces uniqueness on the indexed key (combined with the partial_predicate filter — only rows where the predicate evaluates truthy enter the uniqueness check). Standard SQL and PG’s canonical way to express conditional uniqueness. mailrs K1.

Trait Implementations§

Source§

impl Clone for CreateIndexStatement

Source§

fn clone(&self) -> CreateIndexStatement

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 CreateIndexStatement

Source§

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

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

impl Display for CreateIndexStatement

Source§

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

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

impl PartialEq for CreateIndexStatement

Source§

fn eq(&self, other: &CreateIndexStatement) -> 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 StructuralPartialEq for CreateIndexStatement

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