pub struct CreateTableStatement {
pub temporary: bool,
pub name: String,
pub columns: Vec<ColumnDef>,
pub like_specs: Vec<LikeSpec>,
pub inherits: Vec<String>,
pub if_not_exists: bool,
pub foreign_keys: Vec<ForeignKeyConstraint>,
pub table_constraints: Vec<TableConstraint>,
pub partition_by: Option<PartitionBySpec>,
pub partition_of: Option<PartitionOfSpec>,
}Fields§
§temporary: boolv7.39 (round 436) — CREATE TEMPORARY TABLE. The table lives in the
creating session’s own namespace: it shadows a permanent table of the
same name, other sessions never see it, and it is dropped when the
session ends. A bool here lands in the struct’s existing padding.
name: String§columns: Vec<ColumnDef>§like_specs: Vec<LikeSpec>v7.39 (round 531) — the LIKE clauses in the column list, in
the order written. Empty for a table that has none.
inherits: Vec<String>v7.39 (round 645) — CREATE TABLE c (…) INHERITS (p1, p2).
Empty for a table that inherits from nothing. Order matters:
the child takes each parent’s columns in this order before its
own, and a parent’s position here is its pg_inherits.inhseqno.
if_not_exists: boolIF NOT EXISTS — engine returns CommandOk no-op when the
table name already exists, instead of raising DuplicateTable.
foreign_keys: Vec<ForeignKeyConstraint>v7.6.0 — table-level FOREIGN KEY (...) REFERENCES ...
constraints. Column-level REFERENCES (single-column inline
form) is normalised into this vec at parse time so the engine
sees one uniform list.
table_constraints: Vec<TableConstraint>v7.9.18 — table-level constraints: PRIMARY KEY (a, b) and
UNIQUE (a, b, ...). mailrs migration follow-up G1 + G6.
Engine resolves each into a BTree index named after the
constraint’s leading column at CREATE TABLE time; INSERT
path enforces composite uniqueness via row scan on the
leading column index.
partition_by: Option<PartitionBySpec>v7.37.6-B(sentori Epic 2 P0)— PARTITION BY <strategy> (key_col) declarative partition-parent suffix. Some ⇒
the engine creates a parent table whose own rows stay
empty and routes INSERT/SELECT through children. Mutually
exclusive with partition_of (parser enforces).
partition_of: Option<PartitionOfSpec>v7.37.6-B — PARTITION OF <parent> { FOR VALUES FROM (a) TO (b) | DEFAULT } child-table declaration. Some ⇒
the table inherits its column list from parent (the
parser rejects an explicit column list when this is set);
engine routes child rows back to the parent at INSERT.
Trait Implementations§
Source§impl Clone for CreateTableStatement
impl Clone for CreateTableStatement
Source§fn clone(&self) -> CreateTableStatement
fn clone(&self) -> CreateTableStatement
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more