surrealdb_core/syn/parser/stmt/
update.rs1use reblessive::Stk;
2
3use crate::{
4 sql::{statements::UpdateStatement, Values},
5 syn::{
6 parser::{ParseResult, Parser},
7 token::t,
8 },
9};
10
11impl Parser<'_> {
12 pub async fn parse_update_stmt(&mut self, stk: &mut Stk) -> ParseResult<UpdateStatement> {
13 let only = self.eat(t!("ONLY"));
14 let what = Values(self.parse_what_list(stk).await?);
15 let data = self.try_parse_data(stk).await?;
16 let cond = self.try_parse_condition(stk).await?;
17 let output = self.try_parse_output(stk).await?;
18 let timeout = self.try_parse_timeout()?;
19 let parallel = self.eat(t!("PARALLEL"));
20
21 Ok(UpdateStatement {
22 only,
23 what,
24 data,
25 cond,
26 output,
27 timeout,
28 parallel,
29 })
30 }
31}