#[derive(Debug, Clone, PartialEq, Eq)] pub struct Select { pub projection: Vec, pub from: String, pub selection: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub enum SelectItem { Wildcard, Expr { expr: Expr, alias: Option }, } #[derive(Debug, Clone, PartialEq, Eq)] pub enum Expr { Identifier(String), Literal(Literal), Binary { left: Box, op: BinaryOp, right: Box, }, } #[derive(Debug, Clone, PartialEq, Eq)] pub enum Literal { String(String), Null, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum BinaryOp { Eq, }