@@ -2577,35 +2577,6 @@ pub enum Statement {
25772577 /// CREATE TABLE
25782578 /// ```
25792579 CreateTable ( CreateTable ) ,
2580- /// ``` sql
2581- /// CREATE ICEBERG TABLE
2582- /// Snowflake-specific statement
2583- /// <https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table>
2584- /// ```
2585- CreateIcebergTable {
2586- or_replace : bool ,
2587- if_not_exists : bool ,
2588- /// Table name
2589- #[ cfg_attr( feature = "visitor" , visit( with = "visit_relation" ) ) ]
2590- name : ObjectName ,
2591- columns : Vec < ColumnDef > ,
2592- constraints : Vec < TableConstraint > ,
2593- with_options : Vec < SqlOption > ,
2594- comment : Option < CommentDef > ,
2595- cluster_by : Option < WrappedCollection < Vec < Ident > > > ,
2596- external_volume : Option < String > ,
2597- catalog : Option < String > ,
2598- base_location : String ,
2599- catalog_sync : Option < String > ,
2600- storage_serialization_policy : Option < StorageSerializationPolicy > ,
2601- data_retention_time_in_days : Option < u64 > ,
2602- max_data_extension_time_in_days : Option < u64 > ,
2603- change_tracking : Option < bool > ,
2604- copy_grants : bool ,
2605- with_aggregation_policy : Option < ObjectName > ,
2606- with_row_access_policy : Option < RowAccessPolicy > ,
2607- with_tags : Option < Vec < Tag > > ,
2608- } ,
26092580 /// ```sql
26102581 /// CREATE VIRTUAL TABLE .. USING <module_name> (<module_args>)`
26112582 /// ```
@@ -4178,120 +4149,6 @@ impl fmt::Display for Statement {
41784149 }
41794150 Ok ( ( ) )
41804151 }
4181- Statement :: CreateIcebergTable {
4182- or_replace,
4183- if_not_exists,
4184- name,
4185- columns,
4186- constraints,
4187- with_options,
4188- comment,
4189- cluster_by,
4190- external_volume,
4191- catalog,
4192- base_location,
4193- catalog_sync,
4194- storage_serialization_policy,
4195- data_retention_time_in_days,
4196- max_data_extension_time_in_days,
4197- change_tracking,
4198- copy_grants,
4199- with_row_access_policy,
4200- with_aggregation_policy,
4201- with_tags,
4202- } => {
4203- write ! (
4204- f,
4205- "CREATE {or_replace}ICEBERG TABLE {if_not_exists}{name}" ,
4206- if_not_exists = if * if_not_exists { "IF NOT EXISTS" } else { "" } ,
4207- or_replace = if * or_replace { "OR REPLACE " } else { "" }
4208- ) ?;
4209- if !columns. is_empty ( ) || !constraints. is_empty ( ) {
4210- write ! ( f, " ({}" , display_comma_separated( columns) ) ?;
4211- if !columns. is_empty ( ) && !constraints. is_empty ( ) {
4212- write ! ( f, ", " ) ?;
4213- }
4214- write ! ( f, "{})" , display_comma_separated( & constraints) ) ?;
4215- }
4216- if !with_options. is_empty ( ) {
4217- write ! ( f, " WITH ({})" , display_comma_separated( & with_options) ) ?;
4218- }
4219- if let Some ( comment_def) = & comment {
4220- match comment_def {
4221- CommentDef :: WithEq ( comment) => {
4222- write ! ( f, " COMMENT = '{comment}'" ) ?;
4223- }
4224- CommentDef :: WithoutEq ( comment) => {
4225- write ! ( f, " COMMENT '{comment}'" ) ?;
4226- }
4227- // For CommentDef::AfterColumnDefsWithoutEq will be displayed after column definition
4228- CommentDef :: AfterColumnDefsWithoutEq ( _) => ( ) ,
4229- }
4230- }
4231- if let Some ( cluster_by) = cluster_by {
4232- write ! ( f, " CLUSTER BY {cluster_by}" ) ?;
4233- }
4234- if let Some ( external_volume) = external_volume {
4235- write ! ( f, " EXTERNAL_VOLUME = '{external_volume}'" ) ?;
4236- }
4237-
4238- if let Some ( catalog) = catalog {
4239- write ! ( f, " CATALOG = '{catalog}'" ) ?;
4240- }
4241-
4242- write ! ( f, " BASE_LOCATION = '{base_location}'" ) ?;
4243-
4244- if let Some ( catalog_sync) = catalog_sync {
4245- write ! ( f, " CATALOG_SYNC = '{catalog_sync}'" ) ?;
4246- }
4247-
4248- if let Some ( storage_serialization_policy) = storage_serialization_policy {
4249- write ! (
4250- f,
4251- " STORAGE_SERIALIZATION_POLICY = {storage_serialization_policy}"
4252- ) ?;
4253- }
4254-
4255- if * copy_grants {
4256- write ! ( f, " COPY GRANTS" ) ?;
4257- }
4258-
4259- if let Some ( is_enabled) = change_tracking {
4260- write ! (
4261- f,
4262- " CHANGE_TRACKING = {}" ,
4263- if * is_enabled { "TRUE" } else { "FALSE" }
4264- ) ?;
4265- }
4266-
4267- if let Some ( data_retention_time_in_days) = data_retention_time_in_days {
4268- write ! (
4269- f,
4270- " DATA_RETENTION_TIME_IN_DAYS = {data_retention_time_in_days}" ,
4271- ) ?;
4272- }
4273-
4274- if let Some ( max_data_extension_time_in_days) = max_data_extension_time_in_days {
4275- write ! (
4276- f,
4277- " MAX_DATA_EXTENSION_TIME_IN_DAYS = {max_data_extension_time_in_days}" ,
4278- ) ?;
4279- }
4280-
4281- if let Some ( with_aggregation_policy) = with_aggregation_policy {
4282- write ! ( f, " WITH AGGREGATION POLICY {with_aggregation_policy}" , ) ?;
4283- }
4284-
4285- if let Some ( row_access_policy) = with_row_access_policy {
4286- write ! ( f, " {row_access_policy}" , ) ?;
4287- }
4288-
4289- if let Some ( tag) = with_tags {
4290- write ! ( f, " WITH TAG ({})" , display_comma_separated( tag. as_slice( ) ) ) ?;
4291- }
4292-
4293- Ok ( ( ) )
4294- }
42954152 Statement :: CreateVirtualTable {
42964153 name,
42974154 if_not_exists,
0 commit comments