use crate::ctx::Context;
use crate::dbs::Options;
use crate::expr::Base;
use crate::expr::statements::alter::database::AlterDatabaseStatement;
use crate::iam::{Action, ResourceKind};
use crate::key::schema::DbRoot;
use crate::val::Value;
pub(crate) async fn alter_database_statement_compute(
this: &AlterDatabaseStatement,
ctx: &Context,
opt: &Options,
) -> anyhow::Result<Value> {
ctx.is_allowed(opt, Action::Edit, ResourceKind::Database, Base::Ns)?;
let (namespace_id, database_id) = ctx.expect_ns_db_ids(opt).await?;
if this.compact {
let database_root = DbRoot {
ns: namespace_id,
db: database_id,
};
ctx.tx().compact(&database_root).await?;
}
Ok(Value::None)
}