pub struct CreateTable {Show 15 fields
pub name: String,
pub qualifier: String,
pub columns: Vec<ColumnDef>,
pub if_not_exists: bool,
pub checks: Vec<TableCheck>,
pub foreign_keys: Vec<ForeignKey>,
pub foreign_key_order: Vec<DeclaredForeignKey>,
pub key_constraints: Vec<TableKeyConstraint>,
pub persistence: RelationPersistence,
pub on_commit: OnCommitAction,
pub hierarchy: TableHierarchy,
pub check_order: Vec<DeclaredCheck>,
pub element_order: Vec<DeclaredElement>,
pub not_null_declarations: Vec<NotNullDeclaration>,
pub untyped_columns: Vec<String>,
}Fields§
§name: String§qualifier: StringLocal SQL relation identifier used while binding expressions declared inside the table definition.
columns: Vec<ColumnDef>§if_not_exists: boolCREATE TABLE IF NOT EXISTS - silently ignore the statement
when a table with this name already exists.
checks: Vec<TableCheck>Table-level CHECK (...) constraints. Each entry is an
expression that must evaluate truthy against every row.
foreign_keys: Vec<ForeignKey>Table-level FOREIGN KEY (col, ...) REFERENCES parent(col, ...).
foreign_key_order: Vec<DeclaredForeignKey>Foreign keys in the statement’s written order, before inheritance adds any constraints. Only the statement carries this order.
key_constraints: Vec<TableKeyConstraint>Every declared PRIMARY KEY / UNIQUE constraint, including
column-level declarations. Keeping the typed key (rather than only
setting per-column flags) preserves composite-key and NULLS NOT DISTINCT semantics through planning and catalog persistence.
persistence: RelationPersistencePostgreSQL relation persistence selected by TEMPORARY or UNLOGGED.
on_commit: OnCommitActionTransaction-end behavior for temporary tables.
hierarchy: TableHierarchyDirect inheritance and declarative-partitioning metadata. The engine resolves parent names and merges their row types atomically at create time, then persists the canonical hierarchy with the table schema.
check_order: Vec<DeclaredCheck>Each CHECK the statement declares, in written order, which DefineRelation adds in that order. Only the statement carries it.
element_order: Vec<DeclaredElement>The columns, NOT NULL table constraints and table PRIMARY KEY constraints the statement declares, in written order, as transformCreateStmt examines them. Only the statement carries it.
not_null_declarations: Vec<NotNullDeclaration>The NOT NULL constraints the statement declares, in the order AddRelationNotNullConstraints takes them once the relation’s columns exist: each column’s clause or implied constraint and each table constraint in written order, then the ones a table PRIMARY KEY adds. Only the statement carries it.
untyped_columns: Vec<String>The columns a PARTITION OF statement declares without a type, which are options on the parent’s columns and take their types when the columns merge. Only the statement carries it.
Trait Implementations§
Source§impl Clone for CreateTable
impl Clone for CreateTable
Source§impl Debug for CreateTable
impl Debug for CreateTable
Source§impl<'de> Deserialize<'de> for CreateTable
impl<'de> Deserialize<'de> for CreateTable
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CreateTable
impl RefUnwindSafe for CreateTable
impl Send for CreateTable
impl Sync for CreateTable
impl Unpin for CreateTable
impl UnsafeUnpin for CreateTable
impl UnwindSafe for CreateTable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more