Skip to main content

uqa_sql/catalog/
index.rs

1//
2// Unified Query Algebra
3//
4// Copyright (c) 2023-2026 Cognica, Inc.
5//
6
7use crate::ast::Expr;
8
9#[derive(Debug, Clone, Default, PartialEq, serde::Serialize, serde::Deserialize)]
10#[serde(deny_unknown_fields)]
11pub struct IndexDefinition {
12    #[serde(default)]
13    pub included_columns: Vec<String>,
14    #[serde(default)]
15    pub column_order: Vec<crate::ast::IndexColumnOrder>,
16    #[serde(default)]
17    pub key_names: Vec<String>,
18    #[serde(default)]
19    pub key_types: Vec<crate::ast::ColumnType>,
20    #[serde(default)]
21    pub predicate: Option<Box<Expr>>,
22    pub unique: bool,
23    pub nulls_not_distinct: bool,
24}
25
26mod enforced_key;
27pub use enforced_key::EnforcedKey;
28
29pub mod stored;