Skip to main content

surql_parser/upstream/syn/parser/stmt/
delete.rs

1use 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}