1use 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;