use crate::{
Result,
ast::{
ast::{Ast, AstAlterSequence},
identifier::{MaybeQualifiedColumnIdentifier, MaybeQualifiedColumnShape},
},
bump::BumpFragment,
expression::ExpressionCompiler,
plan::logical::{AlterSequenceNode, Compiler, LogicalPlan, resolver},
};
impl<'bump> Compiler<'bump> {
pub(crate) fn compile_alter_sequence(&self, ast: AstAlterSequence<'bump>) -> Result<LogicalPlan<'bump>> {
let namespace = if ast.sequence.namespace.is_empty() {
vec![BumpFragment::internal(self.bump, resolver::DEFAULT_NAMESPACE)]
} else {
ast.sequence.namespace.clone()
};
let sequence_name = ast.sequence.name;
let column = MaybeQualifiedColumnIdentifier {
shape: MaybeQualifiedColumnShape::Qualified {
namespace,
name: sequence_name,
},
name: ast.column,
};
Ok(LogicalPlan::AlterSequence(AlterSequenceNode {
sequence: ast.sequence,
column,
value: ExpressionCompiler::compile(Ast::Literal(ast.value))?,
}))
}
}