in src/ast/spans.rs [556:613]
fn span(&self) -> Span {
let CreateTable {
or_replace: _, // bool
temporary: _, // bool
external: _, // bool
global: _, // bool
if_not_exists: _, // bool
transient: _, // bool
volatile: _, // bool
iceberg: _, // bool, Snowflake specific
name,
columns,
constraints,
hive_distribution: _, // hive specific
hive_formats: _, // hive specific
file_format: _, // enum
location: _, // string, no span
query,
without_rowid: _, // bool
like,
clone,
comment: _, // todo, no span
on_commit: _,
on_cluster: _, // todo, clickhouse specific
primary_key: _, // todo, clickhouse specific
order_by: _, // todo, clickhouse specific
partition_by: _, // todo, BigQuery specific
cluster_by: _, // todo, BigQuery specific
clustered_by: _, // todo, Hive specific
inherits: _, // todo, PostgreSQL specific
strict: _, // bool
copy_grants: _, // bool
enable_schema_evolution: _, // bool
change_tracking: _, // bool
data_retention_time_in_days: _, // u64, no span
max_data_extension_time_in_days: _, // u64, no span
default_ddl_collation: _, // string, no span
with_aggregation_policy: _, // todo, Snowflake specific
with_row_access_policy: _, // todo, Snowflake specific
with_tags: _, // todo, Snowflake specific
external_volume: _, // todo, Snowflake specific
base_location: _, // todo, Snowflake specific
catalog: _, // todo, Snowflake specific
catalog_sync: _, // todo, Snowflake specific
storage_serialization_policy: _,
table_options,
} = self;
union_spans(
core::iter::once(name.span())
.chain(core::iter::once(table_options.span()))
.chain(columns.iter().map(|i| i.span()))
.chain(constraints.iter().map(|i| i.span()))
.chain(query.iter().map(|i| i.span()))
.chain(like.iter().map(|i| i.span()))
.chain(clone.iter().map(|i| i.span())),
)
}