pub struct CreateTableBuilder {Show 53 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 partition_of: Option<ObjectName>,
pub for_values: Option<ForValues>,
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: boolWhether the statement uses OR REPLACE.
temporary: boolWhether the table is TEMPORARY.
external: boolWhether the table is EXTERNAL.
global: Option<bool>Optional GLOBAL flag for dialects that support it.
if_not_exists: boolWhether IF NOT EXISTS was specified.
transient: boolWhether TRANSIENT was specified.
volatile: boolWhether VOLATILE was specified.
iceberg: boolIceberg-specific table flag.
dynamic: boolWhether DYNAMIC table option is set.
name: ObjectNameThe table name.
columns: Vec<ColumnDef>Column definitions for the table.
constraints: Vec<TableConstraint>Table-level constraints.
hive_distribution: HiveDistributionStyleHive distribution style.
hive_formats: Option<HiveFormat>Optional Hive format settings.
file_format: Option<FileFormat>Optional file format for storage.
location: Option<String>Optional storage location.
query: Option<Box<Query>>Optional AS SELECT query for the table.
without_rowid: boolWhether WITHOUT ROWID is set.
like: Option<CreateTableLikeKind>Optional LIKE clause kind.
clone: Option<ObjectName>Optional CLONE source object name.
version: Option<TableVersion>Optional table version.
comment: Option<CommentDef>Optional table comment.
on_commit: Option<OnCommit>Optional ON COMMIT behavior.
on_cluster: Option<Ident>Optional cluster identifier.
primary_key: Option<Box<Expr>>Optional primary key expression.
order_by: Option<OneOrManyWithParens<Expr>>Optional ORDER BY for clustering/sorting.
partition_by: Option<Box<Expr>>Optional PARTITION BY expression.
cluster_by: Option<WrappedCollection<Vec<Expr>>>Optional CLUSTER BY expressions.
clustered_by: Option<ClusteredBy>Optional CLUSTERED BY clause.
inherits: Option<Vec<ObjectName>>Optional parent tables (INHERITS).
partition_of: Option<ObjectName>Optional partitioned table (PARTITION OF)
for_values: Option<ForValues>Range of values associated with the partition (FOR VALUES)
strict: boolSTRICT table flag.
copy_grants: boolWhether to copy grants from the source.
enable_schema_evolution: Option<bool>Optional flag for schema evolution support.
change_tracking: Option<bool>Optional change tracking flag.
data_retention_time_in_days: Option<u64>Optional data retention time in days.
max_data_extension_time_in_days: Option<u64>Optional max data extension time in days.
default_ddl_collation: Option<String>Optional default DDL collation.
with_aggregation_policy: Option<ObjectName>Optional aggregation policy object name.
with_row_access_policy: Option<RowAccessPolicy>Optional row access policy applied to the table.
Optional tags/labels attached to the table metadata.
base_location: Option<String>Optional base location for staged data.
external_volume: Option<String>Optional external volume identifier.
catalog: Option<String>Optional catalog name.
catalog_sync: Option<String>Optional catalog synchronization option.
storage_serialization_policy: Option<StorageSerializationPolicy>Optional storage serialization policy.
table_options: CreateTableOptionsParsed table options from the statement.
target_lag: Option<String>Optional target lag configuration.
warehouse: Option<Ident>Optional warehouse identifier.
refresh_mode: Option<RefreshModeKind>Optional refresh mode for materialized tables.
initialize: Option<InitializeKind>Optional initialization kind for the table.
require_user: boolWhether operations require a user identity.
Implementations§
Source§impl CreateTableBuilder
impl CreateTableBuilder
Sourcepub fn new(name: ObjectName) -> CreateTableBuilder
pub fn new(name: ObjectName) -> CreateTableBuilder
Create a new CreateTableBuilder for the given table name.
Sourcepub fn or_replace(self, or_replace: bool) -> CreateTableBuilder
pub fn or_replace(self, or_replace: bool) -> CreateTableBuilder
Set OR REPLACE for the CREATE TABLE statement.
Sourcepub fn temporary(self, temporary: bool) -> CreateTableBuilder
pub fn temporary(self, temporary: bool) -> CreateTableBuilder
Mark the table as TEMPORARY.
Sourcepub fn external(self, external: bool) -> CreateTableBuilder
pub fn external(self, external: bool) -> CreateTableBuilder
Mark the table as EXTERNAL.
Sourcepub fn global(self, global: Option<bool>) -> CreateTableBuilder
pub fn global(self, global: Option<bool>) -> CreateTableBuilder
Set optional GLOBAL flag (dialect-specific).
Sourcepub fn if_not_exists(self, if_not_exists: bool) -> CreateTableBuilder
pub fn if_not_exists(self, if_not_exists: bool) -> CreateTableBuilder
Set IF NOT EXISTS.
Sourcepub fn transient(self, transient: bool) -> CreateTableBuilder
pub fn transient(self, transient: bool) -> CreateTableBuilder
Set TRANSIENT flag.
Sourcepub fn volatile(self, volatile: bool) -> CreateTableBuilder
pub fn volatile(self, volatile: bool) -> CreateTableBuilder
Set VOLATILE flag.
Sourcepub fn iceberg(self, iceberg: bool) -> CreateTableBuilder
pub fn iceberg(self, iceberg: bool) -> CreateTableBuilder
Enable Iceberg table semantics.
Sourcepub fn dynamic(self, dynamic: bool) -> CreateTableBuilder
pub fn dynamic(self, dynamic: bool) -> CreateTableBuilder
Set DYNAMIC table option.
Sourcepub fn columns(self, columns: Vec<ColumnDef>) -> CreateTableBuilder
pub fn columns(self, columns: Vec<ColumnDef>) -> CreateTableBuilder
Set the table column definitions.
Sourcepub fn constraints(
self,
constraints: Vec<TableConstraint>,
) -> CreateTableBuilder
pub fn constraints( self, constraints: Vec<TableConstraint>, ) -> CreateTableBuilder
Set table-level constraints.
Sourcepub fn hive_distribution(
self,
hive_distribution: HiveDistributionStyle,
) -> CreateTableBuilder
pub fn hive_distribution( self, hive_distribution: HiveDistributionStyle, ) -> CreateTableBuilder
Set Hive distribution style.
Sourcepub fn hive_formats(
self,
hive_formats: Option<HiveFormat>,
) -> CreateTableBuilder
pub fn hive_formats( self, hive_formats: Option<HiveFormat>, ) -> CreateTableBuilder
Set Hive-specific formats.
Sourcepub fn file_format(self, file_format: Option<FileFormat>) -> CreateTableBuilder
pub fn file_format(self, file_format: Option<FileFormat>) -> CreateTableBuilder
Set file format for the table (e.g., PARQUET).
Sourcepub fn location(self, location: Option<String>) -> CreateTableBuilder
pub fn location(self, location: Option<String>) -> CreateTableBuilder
Set storage location for the table.
Sourcepub fn query(self, query: Option<Box<Query>>) -> CreateTableBuilder
pub fn query(self, query: Option<Box<Query>>) -> CreateTableBuilder
Set an underlying AS SELECT query for the table.
Sourcepub fn without_rowid(self, without_rowid: bool) -> CreateTableBuilder
pub fn without_rowid(self, without_rowid: bool) -> CreateTableBuilder
Set WITHOUT ROWID option.
Sourcepub fn like(self, like: Option<CreateTableLikeKind>) -> CreateTableBuilder
pub fn like(self, like: Option<CreateTableLikeKind>) -> CreateTableBuilder
Set LIKE clause for the table.
Sourcepub fn clone_clause(self, clone: Option<ObjectName>) -> CreateTableBuilder
pub fn clone_clause(self, clone: Option<ObjectName>) -> CreateTableBuilder
Set CLONE source object name.
Sourcepub fn version(self, version: Option<TableVersion>) -> CreateTableBuilder
pub fn version(self, version: Option<TableVersion>) -> CreateTableBuilder
Set table VERSION.
Sourcepub fn comment_after_column_def(
self,
comment: Option<CommentDef>,
) -> CreateTableBuilder
pub fn comment_after_column_def( self, comment: Option<CommentDef>, ) -> CreateTableBuilder
Set a comment for the table or following column definitions.
Sourcepub fn on_commit(self, on_commit: Option<OnCommit>) -> CreateTableBuilder
pub fn on_commit(self, on_commit: Option<OnCommit>) -> CreateTableBuilder
Set ON COMMIT behavior for temporary tables.
Sourcepub fn on_cluster(self, on_cluster: Option<Ident>) -> CreateTableBuilder
pub fn on_cluster(self, on_cluster: Option<Ident>) -> CreateTableBuilder
Set cluster identifier for the table.
Sourcepub fn primary_key(self, primary_key: Option<Box<Expr>>) -> CreateTableBuilder
pub fn primary_key(self, primary_key: Option<Box<Expr>>) -> CreateTableBuilder
Set a primary key expression for the table.
Sourcepub fn order_by(
self,
order_by: Option<OneOrManyWithParens<Expr>>,
) -> CreateTableBuilder
pub fn order_by( self, order_by: Option<OneOrManyWithParens<Expr>>, ) -> CreateTableBuilder
Set ORDER BY clause for clustered/sorted tables.
Sourcepub fn partition_by(self, partition_by: Option<Box<Expr>>) -> CreateTableBuilder
pub fn partition_by(self, partition_by: Option<Box<Expr>>) -> CreateTableBuilder
Set PARTITION BY expression.
Sourcepub fn cluster_by(
self,
cluster_by: Option<WrappedCollection<Vec<Expr>>>,
) -> CreateTableBuilder
pub fn cluster_by( self, cluster_by: Option<WrappedCollection<Vec<Expr>>>, ) -> CreateTableBuilder
Set CLUSTER BY expression(s).
Sourcepub fn clustered_by(
self,
clustered_by: Option<ClusteredBy>,
) -> CreateTableBuilder
pub fn clustered_by( self, clustered_by: Option<ClusteredBy>, ) -> CreateTableBuilder
Set CLUSTERED BY clause.
Sourcepub fn inherits(self, inherits: Option<Vec<ObjectName>>) -> CreateTableBuilder
pub fn inherits(self, inherits: Option<Vec<ObjectName>>) -> CreateTableBuilder
Set parent tables via INHERITS.
Sourcepub fn partition_of(
self,
partition_of: Option<ObjectName>,
) -> CreateTableBuilder
pub fn partition_of( self, partition_of: Option<ObjectName>, ) -> CreateTableBuilder
Sets the table which is partitioned to create the current table.
Sourcepub fn for_values(self, for_values: Option<ForValues>) -> CreateTableBuilder
pub fn for_values(self, for_values: Option<ForValues>) -> CreateTableBuilder
Sets the range of values associated with the partition.
Sourcepub fn strict(self, strict: bool) -> CreateTableBuilder
pub fn strict(self, strict: bool) -> CreateTableBuilder
Set STRICT option.
Sourcepub fn copy_grants(self, copy_grants: bool) -> CreateTableBuilder
pub fn copy_grants(self, copy_grants: bool) -> CreateTableBuilder
Enable copying grants from source object.
Sourcepub fn enable_schema_evolution(
self,
enable_schema_evolution: Option<bool>,
) -> CreateTableBuilder
pub fn enable_schema_evolution( self, enable_schema_evolution: Option<bool>, ) -> CreateTableBuilder
Enable or disable schema evolution features.
Sourcepub fn change_tracking(
self,
change_tracking: Option<bool>,
) -> CreateTableBuilder
pub fn change_tracking( self, change_tracking: Option<bool>, ) -> CreateTableBuilder
Enable or disable change tracking.
Sourcepub fn data_retention_time_in_days(
self,
data_retention_time_in_days: Option<u64>,
) -> CreateTableBuilder
pub fn data_retention_time_in_days( self, data_retention_time_in_days: Option<u64>, ) -> CreateTableBuilder
Set data retention time (in days).
Sourcepub fn max_data_extension_time_in_days(
self,
max_data_extension_time_in_days: Option<u64>,
) -> CreateTableBuilder
pub fn max_data_extension_time_in_days( self, max_data_extension_time_in_days: Option<u64>, ) -> CreateTableBuilder
Set maximum data extension time (in days).
Sourcepub fn default_ddl_collation(
self,
default_ddl_collation: Option<String>,
) -> CreateTableBuilder
pub fn default_ddl_collation( self, default_ddl_collation: Option<String>, ) -> CreateTableBuilder
Set default DDL collation.
Sourcepub fn with_aggregation_policy(
self,
with_aggregation_policy: Option<ObjectName>,
) -> CreateTableBuilder
pub fn with_aggregation_policy( self, with_aggregation_policy: Option<ObjectName>, ) -> CreateTableBuilder
Set aggregation policy object.
Sourcepub fn with_row_access_policy(
self,
with_row_access_policy: Option<RowAccessPolicy>,
) -> CreateTableBuilder
pub fn with_row_access_policy( self, with_row_access_policy: Option<RowAccessPolicy>, ) -> CreateTableBuilder
Attach a row access policy to the table.
Attach tags/labels to the table metadata.
Sourcepub fn base_location(self, base_location: Option<String>) -> CreateTableBuilder
pub fn base_location(self, base_location: Option<String>) -> CreateTableBuilder
Set a base storage location for staged data.
Sourcepub fn external_volume(
self,
external_volume: Option<String>,
) -> CreateTableBuilder
pub fn external_volume( self, external_volume: Option<String>, ) -> CreateTableBuilder
Set an external volume identifier.
Sourcepub fn catalog(self, catalog: Option<String>) -> CreateTableBuilder
pub fn catalog(self, catalog: Option<String>) -> CreateTableBuilder
Set the catalog name for the table.
Sourcepub fn catalog_sync(self, catalog_sync: Option<String>) -> CreateTableBuilder
pub fn catalog_sync(self, catalog_sync: Option<String>) -> CreateTableBuilder
Set catalog synchronization option.
Sourcepub fn storage_serialization_policy(
self,
storage_serialization_policy: Option<StorageSerializationPolicy>,
) -> CreateTableBuilder
pub fn storage_serialization_policy( self, storage_serialization_policy: Option<StorageSerializationPolicy>, ) -> CreateTableBuilder
Set a storage serialization policy.
Sourcepub fn table_options(
self,
table_options: CreateTableOptions,
) -> CreateTableBuilder
pub fn table_options( self, table_options: CreateTableOptions, ) -> CreateTableBuilder
Set arbitrary table options parsed from the statement.
Sourcepub fn target_lag(self, target_lag: Option<String>) -> CreateTableBuilder
pub fn target_lag(self, target_lag: Option<String>) -> CreateTableBuilder
Set a target lag configuration (dialect-specific).
Sourcepub fn warehouse(self, warehouse: Option<Ident>) -> CreateTableBuilder
pub fn warehouse(self, warehouse: Option<Ident>) -> CreateTableBuilder
Associate the table with a warehouse identifier.
Sourcepub fn refresh_mode(
self,
refresh_mode: Option<RefreshModeKind>,
) -> CreateTableBuilder
pub fn refresh_mode( self, refresh_mode: Option<RefreshModeKind>, ) -> CreateTableBuilder
Set refresh mode for materialized/managed tables.
Sourcepub fn initialize(
self,
initialize: Option<InitializeKind>,
) -> CreateTableBuilder
pub fn initialize( self, initialize: Option<InitializeKind>, ) -> CreateTableBuilder
Set initialization mode for the table.
Sourcepub fn require_user(self, require_user: bool) -> CreateTableBuilder
pub fn require_user(self, require_user: bool) -> CreateTableBuilder
Require a user identity for table operations.
Sourcepub fn build(self) -> CreateTable
pub fn build(self) -> CreateTable
Consume the builder and produce a CreateTable.
Trait Implementations§
Source§impl Clone for CreateTableBuilder
impl Clone for CreateTableBuilder
Source§fn clone(&self) -> CreateTableBuilder
fn clone(&self) -> CreateTableBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more