use crate::ctx::Context;
use crate::dbs::Options;
use crate::expr::Base;
use crate::expr::statements::alter::namespace::AlterNamespaceStatement;
use crate::iam::{Action, ResourceKind};
use crate::key::schema::NsRoot;
use crate::val::Value;
pub(crate) async fn alter_namespace_statement_compute(
this: &AlterNamespaceStatement,
ctx: &Context,
opt: &Options,
) -> anyhow::Result<Value> {
ctx.is_allowed(opt, Action::Edit, ResourceKind::Namespace, Base::Root)?;
let namespace_id = ctx.expect_ns_id(opt).await?;
if this.compact {
let namespace_root = NsRoot {
ns: namespace_id,
};
ctx.tx().compact(&namespace_root).await?;
}
Ok(Value::None)
}