use crate::control::state::SharedState;
use crate::types::DatabaseId;
use super::super::super::result::DdlError;
pub(super) fn ddl_err(sqlstate: &str, message: impl Into<String>) -> DdlError {
DdlError {
sqlstate: sqlstate.to_string(),
message: message.into(),
}
}
pub(crate) fn ensure_collection_active(
state: &SharedState,
database_id: DatabaseId,
tenant_id: u64,
name: &str,
) -> Result<(), DdlError> {
let catalog = state.credentials.catalog();
match catalog.get_collection(database_id, tenant_id, name) {
Ok(Some(c)) if c.is_active => Ok(()),
Ok(Some(_)) => Err(ddl_err(
"42P01",
format!("collection '{name}' is deactivated"),
)),
_ => Err(ddl_err("42P01", format!("collection '{name}' not found"))),
}
}