MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / plan_create_schema

Function plan_create_schema

src/sql/src/plan/statement/ddl.rs:245–275  ·  view source on GitHub ↗
(
    scx: &StatementContext,
    CreateSchemaStatement {
        mut name,
        if_not_exists,
    }: CreateSchemaStatement,
)

Source from the content-addressed store, hash-verified

243}
244
245pub 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
277pub fn describe_create_table(
278 _: &StatementContext,

Callers 1

planFunction · 0.85

Calls 10

identFunction · 0.85
IdEnum · 0.85
expectMethod · 0.80
lenMethod · 0.45
popMethod · 0.45
active_databaseMethod · 0.45
cloneMethod · 0.45
resolve_databaseMethod · 0.45
idMethod · 0.45

Tested by

no test coverage detected