(
scx: &StatementContext,
CreateSchemaStatement {
mut name,
if_not_exists,
}: CreateSchemaStatement,
)
| 243 | } |
| 244 | |
| 245 | pub fn plan_create_schema( |
| 246 | scx: &StatementContext, |
| 247 | CreateSchemaStatement { |
| 248 | mut name, |
| 249 | if_not_exists, |
| 250 | }: CreateSchemaStatement, |
| 251 | ) -> Result<Plan, PlanError> { |
| 252 | if name.0.len() > 2 { |
| 253 | sql_bail!("schema name {} has more than two components", name); |
| 254 | } |
| 255 | let schema_name = normalize::ident( |
| 256 | name.0 |
| 257 | .pop() |
| 258 | .expect("names always have at least one component"), |
| 259 | ); |
| 260 | let database_spec = match name.0.pop() { |
| 261 | None => match scx.catalog.active_database() { |
| 262 | Some(id) => ResolvedDatabaseSpecifier::Id(id.clone()), |
| 263 | None => sql_bail!("no database specified and no active database"), |
| 264 | }, |
| 265 | Some(n) => match scx.resolve_database(&UnresolvedDatabaseName(n.clone())) { |
| 266 | Ok(database) => ResolvedDatabaseSpecifier::Id(database.id()), |
| 267 | Err(_) => sql_bail!("invalid database {}", n.as_str()), |
| 268 | }, |
| 269 | }; |
| 270 | Ok(Plan::CreateSchema(CreateSchemaPlan { |
| 271 | database_spec, |
| 272 | schema_name, |
| 273 | if_not_exists, |
| 274 | })) |
| 275 | } |
| 276 | |
| 277 | pub fn describe_create_table( |
| 278 | _: &StatementContext, |
no test coverage detected