glaredb_parser/
statement.rs1use serde::{Deserialize, Serialize};
2
3use crate::ast::{
4 Attach,
5 CopyTo,
6 CreateSchema,
7 CreateTable,
8 CreateView,
9 Describe,
10 Detach,
11 DiscardStatement,
12 DropStatement,
13 ExplainNode,
14 Insert,
15 QueryNode,
16 ResetVariable,
17 SetVariable,
18 Show,
19};
20use crate::meta::{AstMeta, Raw};
21
22pub type RawStatement = Statement<Raw>;
23
24#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
25pub enum Statement<T: AstMeta> {
26 Attach(Attach<T>),
27 Detach(Detach<T>),
28
29 Explain(ExplainNode<T>),
30
31 CopyTo(CopyTo<T>),
33
34 Describe(Describe<T>),
37
38 Query(QueryNode<T>),
40
41 CreateTable(CreateTable<T>),
43
44 CreateSchema(CreateSchema<T>),
46
47 CreateView(CreateView<T>),
49
50 Drop(DropStatement<T>),
52
53 Insert(Insert<T>),
55
56 SetVariable(SetVariable<T>),
58
59 Show(Show<T>),
63
64 ResetVariable(ResetVariable<T>),
66
67 Discard(DiscardStatement),
69}