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: IndexMethodOptional USING <method> clause. v2.0 recognises hnsw (NSW
graph for vector kNN); unspecified is the default B-tree index.
if_not_exists: boolIF 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: boolv7.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
impl Clone for CreateIndexStatement
Source§fn clone(&self) -> CreateIndexStatement
fn clone(&self) -> CreateIndexStatement
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CreateIndexStatement
impl Debug for CreateIndexStatement
Source§impl Display for CreateIndexStatement
impl Display for CreateIndexStatement
Source§impl PartialEq for CreateIndexStatement
impl PartialEq for CreateIndexStatement
Source§fn eq(&self, other: &CreateIndexStatement) -> bool
fn eq(&self, other: &CreateIndexStatement) -> bool
self and other values to be equal, and is used by ==.