reifydb-rql 0.4.12

ReifyDB Query Language (RQL) parser and AST
Documentation
// SPDX-License-Identifier: Apache-2.0
// Copyright (c) 2025 ReifyDB

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))?,
		}))
	}
}