Struct CreateTableBuilder
pub struct CreateTableBuilder {Show 51 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 dynamic: bool,
pub name: ObjectName,
pub columns: Vec<ColumnDef>,
pub constraints: Vec<TableConstraint>,
pub hive_distribution: HiveDistributionStyle,
pub hive_formats: Option<HiveFormat>,
pub file_format: Option<FileFormat>,
pub location: Option<String>,
pub query: Option<Box<Query>>,
pub without_rowid: bool,
pub like: Option<CreateTableLikeKind>,
pub clone: Option<ObjectName>,
pub version: Option<TableVersion>,
pub comment: Option<CommentDef>,
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<Expr>>>,
pub clustered_by: Option<ClusteredBy>,
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>,
pub table_options: CreateTableOptions,
pub target_lag: Option<String>,
pub warehouse: Option<Ident>,
pub refresh_mode: Option<RefreshModeKind>,
pub initialize: Option<InitializeKind>,
pub require_user: bool,
}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§dynamic: bool§name: ObjectName§columns: Vec<ColumnDef>§constraints: Vec<TableConstraint>§hive_distribution: HiveDistributionStyle§hive_formats: Option<HiveFormat>§file_format: Option<FileFormat>§location: Option<String>§query: Option<Box<Query>>§without_rowid: bool§like: Option<CreateTableLikeKind>§clone: Option<ObjectName>§version: Option<TableVersion>§comment: Option<CommentDef>§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<Expr>>>§clustered_by: Option<ClusteredBy>§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>§table_options: CreateTableOptions§target_lag: Option<String>§warehouse: Option<Ident>§refresh_mode: Option<RefreshModeKind>§initialize: Option<InitializeKind>§require_user: boolImplementations§
§impl CreateTableBuilder
impl CreateTableBuilder
pub fn new(name: ObjectName) -> CreateTableBuilder
pub fn or_replace(self, or_replace: bool) -> CreateTableBuilder
pub fn temporary(self, temporary: bool) -> CreateTableBuilder
pub fn external(self, external: bool) -> CreateTableBuilder
pub fn global(self, global: Option<bool>) -> CreateTableBuilder
pub fn if_not_exists(self, if_not_exists: bool) -> CreateTableBuilder
pub fn transient(self, transient: bool) -> CreateTableBuilder
pub fn volatile(self, volatile: bool) -> CreateTableBuilder
pub fn iceberg(self, iceberg: bool) -> CreateTableBuilder
pub fn dynamic(self, dynamic: bool) -> CreateTableBuilder
pub fn columns(self, columns: Vec<ColumnDef>) -> CreateTableBuilder
pub fn constraints( self, constraints: Vec<TableConstraint>, ) -> CreateTableBuilder
pub fn hive_distribution( self, hive_distribution: HiveDistributionStyle, ) -> CreateTableBuilder
pub fn hive_formats( self, hive_formats: Option<HiveFormat>, ) -> CreateTableBuilder
pub fn file_format(self, file_format: Option<FileFormat>) -> CreateTableBuilder
pub fn location(self, location: Option<String>) -> CreateTableBuilder
pub fn query(self, query: Option<Box<Query>>) -> CreateTableBuilder
pub fn without_rowid(self, without_rowid: bool) -> CreateTableBuilder
pub fn like(self, like: Option<CreateTableLikeKind>) -> CreateTableBuilder
pub fn clone_clause(self, clone: Option<ObjectName>) -> CreateTableBuilder
pub fn version(self, version: Option<TableVersion>) -> CreateTableBuilder
pub fn comment_after_column_def( self, comment: Option<CommentDef>, ) -> CreateTableBuilder
pub fn on_commit(self, on_commit: Option<OnCommit>) -> CreateTableBuilder
pub fn on_cluster(self, on_cluster: Option<Ident>) -> CreateTableBuilder
pub fn primary_key(self, primary_key: Option<Box<Expr>>) -> CreateTableBuilder
pub fn order_by( self, order_by: Option<OneOrManyWithParens<Expr>>, ) -> CreateTableBuilder
pub fn partition_by(self, partition_by: Option<Box<Expr>>) -> CreateTableBuilder
pub fn cluster_by( self, cluster_by: Option<WrappedCollection<Vec<Expr>>>, ) -> CreateTableBuilder
pub fn clustered_by( self, clustered_by: Option<ClusteredBy>, ) -> CreateTableBuilder
pub fn inherits(self, inherits: Option<Vec<ObjectName>>) -> CreateTableBuilder
pub fn strict(self, strict: bool) -> CreateTableBuilder
pub fn copy_grants(self, copy_grants: bool) -> CreateTableBuilder
pub fn enable_schema_evolution( self, enable_schema_evolution: Option<bool>, ) -> CreateTableBuilder
pub fn change_tracking( self, change_tracking: Option<bool>, ) -> CreateTableBuilder
pub fn data_retention_time_in_days( self, data_retention_time_in_days: Option<u64>, ) -> CreateTableBuilder
pub fn max_data_extension_time_in_days( self, max_data_extension_time_in_days: Option<u64>, ) -> CreateTableBuilder
pub fn default_ddl_collation( self, default_ddl_collation: Option<String>, ) -> CreateTableBuilder
pub fn with_aggregation_policy( self, with_aggregation_policy: Option<ObjectName>, ) -> CreateTableBuilder
pub fn with_row_access_policy( self, with_row_access_policy: Option<RowAccessPolicy>, ) -> CreateTableBuilder
pub fn base_location(self, base_location: Option<String>) -> CreateTableBuilder
pub fn external_volume( self, external_volume: Option<String>, ) -> CreateTableBuilder
pub fn catalog(self, catalog: Option<String>) -> CreateTableBuilder
pub fn catalog_sync(self, catalog_sync: Option<String>) -> CreateTableBuilder
pub fn storage_serialization_policy( self, storage_serialization_policy: Option<StorageSerializationPolicy>, ) -> CreateTableBuilder
pub fn table_options( self, table_options: CreateTableOptions, ) -> CreateTableBuilder
pub fn target_lag(self, target_lag: Option<String>) -> CreateTableBuilder
pub fn warehouse(self, warehouse: Option<Ident>) -> CreateTableBuilder
pub fn refresh_mode( self, refresh_mode: Option<RefreshModeKind>, ) -> CreateTableBuilder
pub fn initialize( self, initialize: Option<InitializeKind>, ) -> CreateTableBuilder
pub fn require_user(self, require_user: bool) -> CreateTableBuilder
pub fn build(self) -> Statement
Trait Implementations§
§impl Clone for CreateTableBuilder
impl Clone for CreateTableBuilder
§fn clone(&self) -> CreateTableBuilder
fn clone(&self) -> CreateTableBuilder
Returns a duplicate 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 more§impl Debug for CreateTableBuilder
impl Debug for CreateTableBuilder
§impl Hash for CreateTableBuilder
impl Hash for CreateTableBuilder
§impl PartialEq for CreateTableBuilder
impl PartialEq for CreateTableBuilder
§impl TryFrom<Statement> for CreateTableBuilder
impl TryFrom<Statement> for CreateTableBuilder
§type Error = ParserError
type Error = ParserError
The type returned in the event of a conversion error.
§fn try_from(
stmt: Statement,
) -> Result<CreateTableBuilder, <CreateTableBuilder as TryFrom<Statement>>::Error>
fn try_from( stmt: Statement, ) -> Result<CreateTableBuilder, <CreateTableBuilder as TryFrom<Statement>>::Error>
Performs the conversion.
§impl Visit for CreateTableBuilder
impl Visit for CreateTableBuilder
§impl VisitMut for CreateTableBuilder
impl VisitMut for CreateTableBuilder
fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>where
V: VisitorMut,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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