Struct datafusion::sql::sqlparser::ast::helpers::stmt_create_table::CreateTableBuilder
source · pub struct CreateTableBuilder {Show 31 fields
pub or_replace: bool,
pub temporary: bool,
pub external: bool,
pub global: Option<bool>,
pub if_not_exists: bool,
pub transient: 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<String>,
pub comment: Option<String>,
pub auto_increment_offset: Option<u32>,
pub default_charset: Option<String>,
pub collation: Option<String>,
pub on_commit: Option<OnCommit>,
pub on_cluster: Option<String>,
pub order_by: Option<Vec<Ident>>,
pub partition_by: Option<Box<Expr>>,
pub cluster_by: Option<Vec<Ident>>,
pub options: Option<Vec<SqlOption>>,
pub strict: 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(vec![Ident::new("table_name")]))
.if_not_exists(true)
.columns(vec![ColumnDef {
name: Ident::new("c1"),
data_type: DataType::Int(None),
collation: 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
§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<String>
§comment: Option<String>
§auto_increment_offset: Option<u32>
§default_charset: Option<String>
§collation: Option<String>
§on_commit: Option<OnCommit>
§on_cluster: Option<String>
§order_by: Option<Vec<Ident>>
§partition_by: Option<Box<Expr>>
§cluster_by: Option<Vec<Ident>>
§options: Option<Vec<SqlOption>>
§strict: bool
Implementations§
source§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 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 table_properties( self, table_properties: Vec<SqlOption> ) -> CreateTableBuilder
pub fn with_options(self, with_options: Vec<SqlOption>) -> 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<ObjectName>) -> CreateTableBuilder
pub fn clone_clause(self, clone: Option<ObjectName>) -> CreateTableBuilder
pub fn engine(self, engine: Option<String>) -> CreateTableBuilder
pub fn comment(self, comment: Option<String>) -> CreateTableBuilder
pub fn auto_increment_offset(self, offset: Option<u32>) -> CreateTableBuilder
pub fn default_charset( self, default_charset: Option<String> ) -> CreateTableBuilder
pub fn collation(self, collation: Option<String>) -> CreateTableBuilder
pub fn on_commit(self, on_commit: Option<OnCommit>) -> CreateTableBuilder
pub fn on_cluster(self, on_cluster: Option<String>) -> CreateTableBuilder
pub fn order_by(self, order_by: Option<Vec<Ident>>) -> CreateTableBuilder
pub fn partition_by(self, partition_by: Option<Box<Expr>>) -> CreateTableBuilder
pub fn cluster_by(self, cluster_by: Option<Vec<Ident>>) -> CreateTableBuilder
pub fn options(self, options: Option<Vec<SqlOption>>) -> CreateTableBuilder
pub fn strict(self, strict: bool) -> CreateTableBuilder
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 Hash for CreateTableBuilder
impl Hash for CreateTableBuilder
source§impl PartialEq for CreateTableBuilder
impl PartialEq for CreateTableBuilder
source§fn eq(&self, other: &CreateTableBuilder) -> bool
fn eq(&self, other: &CreateTableBuilder) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§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.
source§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.
source§impl Visit for CreateTableBuilder
impl Visit for CreateTableBuilder
source§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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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