use crate::control::security::identity::AuthenticatedIdentity;
use crate::control::state::SharedState;
use super::super::super::result::{DdlError, DdlResult};
use super::super::auth_support::require_tenant_admin;
pub fn alter_change_stream(
_state: &SharedState,
identity: &AuthenticatedIdentity,
name: &str,
action: &str,
) -> Result<Vec<DdlResult>, DdlError> {
require_tenant_admin(identity, "alter change streams")?;
match action {
"ENABLE" | "DISABLE" | "SUSPEND" | "RESUME" | "PAUSE" => Err(DdlError {
sqlstate: "0A000".to_string(),
message: format!(
"ALTER CHANGE STREAM {name} {action} is not yet supported; \
stream pause/resume requires a schema migration to add the \
'paused' field to ChangeStreamDef"
),
}),
_ => Err(DdlError {
sqlstate: "42601".to_string(),
message: format!(
"unknown ALTER CHANGE STREAM action '{action}'; \
expected ENABLE, DISABLE, SUSPEND, or RESUME"
),
}),
}
}