pub struct CreateTableBuilder {Show 50 fields
pub or_replace: bool,
pub temporary: bool,
pub external: bool,
pub global: Option<bool>,
pub if_not_exists: bool,
pub transient: bool,
pub volatile: bool,
pub iceberg: bool,
pub name: ObjectName,
pub columns: Vec<ColumnDef>,
pub constraints: Vec<TableConstraint>,
pub hive_distribution: HiveDistributionStyle,
pub hive_formats: Option<HiveFormat>,
pub table_properties: Vec<SqlOption>,
pub with_options: Vec<SqlOption>,
pub file_format: Option<FileFormat>,
pub location: Option<String>,
pub query: Option<Box<Query>>,
pub without_rowid: bool,
pub like: Option<ObjectName>,
pub clone: Option<ObjectName>,
pub engine: Option<TableEngine>,
pub comment: Option<CommentDef>,
pub auto_increment_offset: Option<u32>,
pub default_charset: Option<String>,
pub collation: Option<String>,
pub on_commit: Option<OnCommit>,
pub on_cluster: Option<Ident>,
pub primary_key: Option<Box<Expr>>,
pub order_by: Option<OneOrManyWithParens<Expr>>,
pub partition_by: Option<Box<Expr>>,
pub cluster_by: Option<WrappedCollection<Vec<Ident>>>,
pub clustered_by: Option<ClusteredBy>,
pub options: Option<Vec<SqlOption>>,
pub inherits: Option<Vec<ObjectName>>,
pub strict: bool,
pub copy_grants: bool,
pub enable_schema_evolution: Option<bool>,
pub change_tracking: Option<bool>,
pub data_retention_time_in_days: Option<u64>,
pub max_data_extension_time_in_days: Option<u64>,
pub default_ddl_collation: Option<String>,
pub with_aggregation_policy: Option<ObjectName>,
pub with_row_access_policy: Option<RowAccessPolicy>,
pub with_tags: Option<Vec<Tag>>,
pub base_location: Option<String>,
pub external_volume: Option<String>,
pub catalog: Option<String>,
pub catalog_sync: Option<String>,
pub storage_serialization_policy: Option<StorageSerializationPolicy>,
}
Expand description
Builder for create table statement variant (1).
This structure helps building and accessing a create table with more ease, without needing to:
- Match the enum itself a lot of times; or
- Moving a lot of variables around the code.
§Example
use sqlparser::ast::helpers::stmt_create_table::CreateTableBuilder;
use sqlparser::ast::{ColumnDef, DataType, Ident, ObjectName};
let builder = CreateTableBuilder::new(ObjectName::from(vec![Ident::new("table_name")]))
.if_not_exists(true)
.columns(vec![ColumnDef {
name: Ident::new("c1"),
data_type: DataType::Int(None),
options: vec![],
}]);
// You can access internal elements with ease
assert!(builder.if_not_exists);
// Convert to a statement
assert_eq!(
builder.build().to_string(),
"CREATE TABLE IF NOT EXISTS table_name (c1 INT)"
)
Fields§
§or_replace: bool
§temporary: bool
§external: bool
§global: Option<bool>
§if_not_exists: bool
§transient: bool
§volatile: bool
§iceberg: bool
§name: ObjectName
§columns: Vec<ColumnDef>
§constraints: Vec<TableConstraint>
§hive_distribution: HiveDistributionStyle
§hive_formats: Option<HiveFormat>
§table_properties: Vec<SqlOption>
§with_options: Vec<SqlOption>
§file_format: Option<FileFormat>
§location: Option<String>
§query: Option<Box<Query>>
§without_rowid: bool
§like: Option<ObjectName>
§clone: Option<ObjectName>
§engine: Option<TableEngine>
§comment: Option<CommentDef>
§auto_increment_offset: Option<u32>
§default_charset: Option<String>
§collation: Option<String>
§on_commit: Option<OnCommit>
§on_cluster: Option<Ident>
§primary_key: Option<Box<Expr>>
§order_by: Option<OneOrManyWithParens<Expr>>
§partition_by: Option<Box<Expr>>
§cluster_by: Option<WrappedCollection<Vec<Ident>>>
§clustered_by: Option<ClusteredBy>
§options: Option<Vec<SqlOption>>
§inherits: Option<Vec<ObjectName>>
§strict: bool
§copy_grants: bool
§enable_schema_evolution: Option<bool>
§change_tracking: Option<bool>
§data_retention_time_in_days: Option<u64>
§max_data_extension_time_in_days: Option<u64>
§default_ddl_collation: Option<String>
§with_aggregation_policy: Option<ObjectName>
§with_row_access_policy: Option<RowAccessPolicy>
§base_location: Option<String>
§external_volume: Option<String>
§catalog: Option<String>
§catalog_sync: Option<String>
§storage_serialization_policy: Option<StorageSerializationPolicy>
Implementations§
Source§impl CreateTableBuilder
impl CreateTableBuilder
pub fn new(name: ObjectName) -> Self
pub fn or_replace(self, or_replace: bool) -> Self
pub fn temporary(self, temporary: bool) -> Self
pub fn external(self, external: bool) -> Self
pub fn global(self, global: Option<bool>) -> Self
pub fn if_not_exists(self, if_not_exists: bool) -> Self
pub fn transient(self, transient: bool) -> Self
pub fn volatile(self, volatile: bool) -> Self
pub fn iceberg(self, iceberg: bool) -> Self
pub fn columns(self, columns: Vec<ColumnDef>) -> Self
pub fn constraints(self, constraints: Vec<TableConstraint>) -> Self
pub fn hive_distribution(self, hive_distribution: HiveDistributionStyle) -> Self
pub fn hive_formats(self, hive_formats: Option<HiveFormat>) -> Self
pub fn table_properties(self, table_properties: Vec<SqlOption>) -> Self
pub fn with_options(self, with_options: Vec<SqlOption>) -> Self
pub fn file_format(self, file_format: Option<FileFormat>) -> Self
pub fn location(self, location: Option<String>) -> Self
pub fn query(self, query: Option<Box<Query>>) -> Self
pub fn without_rowid(self, without_rowid: bool) -> Self
pub fn like(self, like: Option<ObjectName>) -> Self
pub fn clone_clause(self, clone: Option<ObjectName>) -> Self
pub fn engine(self, engine: Option<TableEngine>) -> Self
pub fn comment(self, comment: Option<CommentDef>) -> Self
pub fn auto_increment_offset(self, offset: Option<u32>) -> Self
pub fn default_charset(self, default_charset: Option<String>) -> Self
pub fn collation(self, collation: Option<String>) -> Self
pub fn on_commit(self, on_commit: Option<OnCommit>) -> Self
pub fn on_cluster(self, on_cluster: Option<Ident>) -> Self
pub fn primary_key(self, primary_key: Option<Box<Expr>>) -> Self
pub fn order_by(self, order_by: Option<OneOrManyWithParens<Expr>>) -> Self
pub fn partition_by(self, partition_by: Option<Box<Expr>>) -> Self
pub fn cluster_by( self, cluster_by: Option<WrappedCollection<Vec<Ident>>>, ) -> Self
pub fn clustered_by(self, clustered_by: Option<ClusteredBy>) -> Self
pub fn options(self, options: Option<Vec<SqlOption>>) -> Self
pub fn inherits(self, inherits: Option<Vec<ObjectName>>) -> Self
pub fn strict(self, strict: bool) -> Self
pub fn copy_grants(self, copy_grants: bool) -> Self
pub fn enable_schema_evolution( self, enable_schema_evolution: Option<bool>, ) -> Self
pub fn change_tracking(self, change_tracking: Option<bool>) -> Self
pub fn data_retention_time_in_days( self, data_retention_time_in_days: Option<u64>, ) -> Self
pub fn max_data_extension_time_in_days( self, max_data_extension_time_in_days: Option<u64>, ) -> Self
pub fn default_ddl_collation( self, default_ddl_collation: Option<String>, ) -> Self
pub fn with_aggregation_policy( self, with_aggregation_policy: Option<ObjectName>, ) -> Self
pub fn with_row_access_policy( self, with_row_access_policy: Option<RowAccessPolicy>, ) -> Self
pub fn base_location(self, base_location: Option<String>) -> Self
pub fn external_volume(self, external_volume: Option<String>) -> Self
pub fn catalog(self, catalog: Option<String>) -> Self
pub fn catalog_sync(self, catalog_sync: Option<String>) -> Self
pub fn storage_serialization_policy( self, storage_serialization_policy: Option<StorageSerializationPolicy>, ) -> Self
pub fn build(self) -> Statement
Trait Implementations§
Source§impl Clone for CreateTableBuilder
impl Clone for CreateTableBuilder
Source§fn clone(&self) -> CreateTableBuilder
fn clone(&self) -> CreateTableBuilder
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for CreateTableBuilder
impl Debug for CreateTableBuilder
Source§impl<'de> Deserialize<'de> for CreateTableBuilder
impl<'de> Deserialize<'de> for CreateTableBuilder
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Hash for CreateTableBuilder
impl Hash for CreateTableBuilder
Source§impl PartialEq for CreateTableBuilder
impl PartialEq for CreateTableBuilder
Source§impl Serialize for CreateTableBuilder
impl Serialize for CreateTableBuilder
Source§impl TryFrom<Statement> for CreateTableBuilder
impl TryFrom<Statement> for CreateTableBuilder
Source§impl Visit for CreateTableBuilder
impl Visit for CreateTableBuilder
Source§impl VisitMut for CreateTableBuilder
impl VisitMut for CreateTableBuilder
fn visit<V: VisitorMut>(&mut self, visitor: &mut V) -> ControlFlow<V::Break>
impl Eq for CreateTableBuilder
impl StructuralPartialEq for CreateTableBuilder
Auto Trait Implementations§
impl Freeze for CreateTableBuilder
impl RefUnwindSafe for CreateTableBuilder
impl Send for CreateTableBuilder
impl Sync for CreateTableBuilder
impl Unpin for CreateTableBuilder
impl UnwindSafe for CreateTableBuilder
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
Mutably borrows from an owned value. Read more