surql_parser/upstream/syn/parser/stmt/
delete.rs1use crate::upstream::sql::statements::DeleteStatement;
2use crate::upstream::syn::parser::{ParseResult, Parser};
3use crate::upstream::syn::token::t;
4use reblessive::Stk;
5impl Parser<'_> {
6 pub async fn parse_delete_stmt(&mut self, stk: &mut Stk) -> ParseResult<DeleteStatement> {
7 self.eat(t!("FROM"));
8 let only = self.eat(t!("ONLY"));
9 let what = self.parse_what_list(stk).await?;
10 let with = self.try_parse_with()?;
11 let cond = self.try_parse_condition(stk).await?;
12 let output = self.try_parse_output(stk).await?;
13 let timeout = self.try_parse_timeout(stk).await?;
14 let explain = self.try_parse_explain()?;
15 Ok(DeleteStatement {
16 only,
17 what,
18 with,
19 cond,
20 output,
21 timeout,
22 explain,
23 })
24 }
25}