Skip to main content

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

1use crate::upstream::sql::statements::UpdateStatement;
2use crate::upstream::syn::parser::{ParseResult, Parser};
3use crate::upstream::syn::token::t;
4use reblessive::Stk;
5impl Parser<'_> {
6	pub async fn parse_update_stmt(&mut self, stk: &mut Stk) -> ParseResult<UpdateStatement> {
7		let only = self.eat(t!("ONLY"));
8		let what = self.parse_what_list(stk).await?;
9		let with = self.try_parse_with()?;
10		let data = self.try_parse_data(stk).await?;
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(UpdateStatement {
16			only,
17			what,
18			with,
19			data,
20			cond,
21			output,
22			timeout,
23			explain,
24		})
25	}
26}