pub struct ColumnDef {Show 38 fields
pub name: Identifier,
pub data_type: DataType,
pub nullable: Option<bool>,
pub default: Option<Expression>,
pub primary_key: bool,
pub primary_key_order: Option<SortOrder>,
pub unique: bool,
pub unique_nulls_not_distinct: bool,
pub auto_increment: bool,
pub comment: Option<String>,
pub constraints: Vec<ColumnConstraint>,
pub constraint_order: Vec<ConstraintType>,
pub format: Option<String>,
pub title: Option<String>,
pub inline_length: Option<u64>,
pub compress: Option<Vec<Expression>>,
pub character_set: Option<String>,
pub uppercase: bool,
pub casespecific: Option<bool>,
pub auto_increment_start: Option<Box<Expression>>,
pub auto_increment_increment: Option<Box<Expression>>,
pub auto_increment_order: Option<bool>,
pub unsigned: bool,
pub zerofill: bool,
pub on_update: Option<Expression>,
pub unique_constraint_name: Option<String>,
pub not_null_constraint_name: Option<String>,
pub primary_key_constraint_name: Option<String>,
pub check_constraint_name: Option<String>,
pub options: Vec<Expression>,
pub no_type: bool,
pub encoding: Option<String>,
pub codec: Option<String>,
pub ephemeral: Option<Option<Box<Expression>>>,
pub materialized_expr: Option<Box<Expression>>,
pub alias_expr: Option<Box<Expression>>,
pub ttl_expr: Option<Box<Expression>>,
pub not_for_replication: bool,
}Expand description
Column definition in CREATE TABLE
Fields§
§name: Identifier§data_type: DataType§nullable: Option<bool>§default: Option<Expression>§primary_key: bool§primary_key_order: Option<SortOrder>Sort order for PRIMARY KEY (ASC/DESC)
unique: bool§unique_nulls_not_distinct: boolPostgreSQL 15+: UNIQUE NULLS NOT DISTINCT
auto_increment: bool§comment: Option<String>§constraints: Vec<ColumnConstraint>§constraint_order: Vec<ConstraintType>Track original order of constraints for accurate regeneration
format: Option<String>Teradata: FORMAT ‘pattern’
title: Option<String>Teradata: TITLE ‘title’
inline_length: Option<u64>Teradata: INLINE LENGTH n
compress: Option<Vec<Expression>>Teradata: COMPRESS or COMPRESS (values) or COMPRESS ‘value’
character_set: Option<String>Teradata: CHARACTER SET name
uppercase: boolTeradata: UPPERCASE
casespecific: Option<bool>Teradata: CASESPECIFIC / NOT CASESPECIFIC (None = not specified, Some(true) = CASESPECIFIC, Some(false) = NOT CASESPECIFIC)
auto_increment_start: Option<Box<Expression>>Snowflake: AUTOINCREMENT START value
auto_increment_increment: Option<Box<Expression>>Snowflake: AUTOINCREMENT INCREMENT value
auto_increment_order: Option<bool>Snowflake: AUTOINCREMENT ORDER/NOORDER (true = ORDER, false = NOORDER, None = not specified)
unsigned: boolMySQL: UNSIGNED modifier
zerofill: boolMySQL: ZEROFILL modifier
on_update: Option<Expression>MySQL: ON UPDATE expression (e.g., ON UPDATE CURRENT_TIMESTAMP)
unique_constraint_name: Option<String>Named constraint for UNIQUE (e.g., CONSTRAINT must_be_different UNIQUE)
not_null_constraint_name: Option<String>Named constraint for NOT NULL (e.g., CONSTRAINT present NOT NULL)
primary_key_constraint_name: Option<String>Named constraint for PRIMARY KEY (e.g., CONSTRAINT pk_name PRIMARY KEY)
check_constraint_name: Option<String>Named constraint for CHECK (e.g., CONSTRAINT chk_name CHECK(…))
options: Vec<Expression>BigQuery: OPTIONS (key=value, …) on column
no_type: boolSQLite: Column definition without explicit type
encoding: Option<String>Redshift: ENCODE encoding_type (e.g., ZSTD, DELTA, LZO, etc.)
codec: Option<String>ClickHouse: CODEC(LZ4HC(9), ZSTD, DELTA)
ephemeral: Option<Option<Box<Expression>>>ClickHouse: EPHEMERAL [expr] modifier
materialized_expr: Option<Box<Expression>>ClickHouse: MATERIALIZED expr modifier
alias_expr: Option<Box<Expression>>ClickHouse: ALIAS expr modifier
ttl_expr: Option<Box<Expression>>ClickHouse: TTL expr modifier on columns
not_for_replication: boolTSQL: NOT FOR REPLICATION