sql_fun_sqlast/sem/
alter_seq.rs1use crate::{
2 sem::{AstAndContextPair, FullName, alter_table::AlterObjSubCommand},
3 syn::Opt,
4};
5
6use super::{AnalysisError, ParseContext, SemAst};
7
8#[derive(Debug, Clone, derive_getters::Getters)]
10pub struct AlterSequence {
11 seq_name: FullName,
12 commands: Vec<AlterObjSubCommand>,
13}
14
15impl AlterSequence {
16 #[must_use]
18 pub fn new(seq_name: &FullName, commands: &[AlterObjSubCommand]) -> Self {
19 Self {
20 seq_name: seq_name.clone(),
21 commands: commands.to_vec(),
22 }
23 }
24}
25
26pub fn analyze_alter_seq<TParseContext>(
28 mut context: TParseContext,
29 _parent_schema: &Option<String>,
30 syn: crate::syn::AlterSeqStmt,
31) -> Result<AstAndContextPair<TParseContext>, AnalysisError>
32where
33 TParseContext: ParseContext,
34{
35 let Some(seq) = syn.get_sequence().as_inner() else {
36 AnalysisError::raise_unexpected_none("AlterSeqStmt.seuqence")?
37 };
38 let seq = FullName::try_from(seq)?;
39
40 let alter_seq = AlterSequence {
41 seq_name: seq,
42 commands: Default::default(),
43 };
44 context = context.apply_alter_sequence(&alter_seq)?;
45 Ok(AstAndContextPair::new(
46 SemAst::AlterSequence(alter_seq),
47 context,
48 ))
49}