File tree Expand file tree Collapse file tree 2 files changed +15
-4
lines changed
Expand file tree Collapse file tree 2 files changed +15
-4
lines changed Original file line number Diff line number Diff line change @@ -15129,10 +15129,16 @@ impl<'a> Parser<'a> {
1512915129 }
1513015130 /// Parse [Statement::Return]
1513115131 fn parse_return(&mut self) -> Result<Statement, ParserError> {
15132- let expr = self.parse_expr()?;
15133- Ok(Statement::Return(ReturnStatement {
15134- value: Some(ReturnStatementValue::Expr(expr)),
15135- }))
15132+ let current_index = self.index;
15133+ match self.parse_expr() {
15134+ Ok(expr) => Ok(Statement::Return(ReturnStatement {
15135+ value: Some(ReturnStatementValue::Expr(expr)),
15136+ })),
15137+ Err(_) => {
15138+ self.index = current_index;
15139+ Ok(Statement::Return(ReturnStatement { value: None }))
15140+ }
15141+ }
1513615142 }
1513715143
1513815144 /// Consume the parser and return its underlying token buffer
Original file line number Diff line number Diff line change @@ -15029,3 +15029,8 @@ fn parse_set_time_zone_alias() {
1502915029 _ => unreachable ! ( ) ,
1503015030 }
1503115031}
15032+
15033+ #[ test]
15034+ fn parse_return ( ) {
15035+ all_dialects ( ) . verified_stmt ( "RETURN" ) ;
15036+ }
You can’t perform that action at this time.
0 commit comments