Skip to main content

ColumnDef

Struct ColumnDef 

Source
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: bool

PostgreSQL 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: bool

Teradata: 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: bool

MySQL: UNSIGNED modifier

§zerofill: bool

MySQL: 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: bool

SQLite: 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: bool

TSQL: NOT FOR REPLICATION

Implementations§

Source§

impl ColumnDef

Source

pub fn new(name: impl Into<String>, data_type: DataType) -> Self

Trait Implementations§

Source§

impl Clone for ColumnDef

Source§

fn clone(&self) -> ColumnDef

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ColumnDef

Source§

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

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

impl<'de> Deserialize<'de> for ColumnDef

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for ColumnDef

Source§

fn eq(&self, other: &ColumnDef) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Serialize for ColumnDef

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ColumnDef

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, 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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,