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 @@ -15130,10 +15130,16 @@ impl<'a> Parser<'a> {
1513015130
1513115131 /// Parse [Statement::Return]
1513215132 fn parse_return(&mut self) -> Result<Statement, ParserError> {
15133- let expr = self.parse_expr()?;
15134- Ok(Statement::Return(ReturnStatement {
15135- value: Some(ReturnStatementValue::Expr(expr)),
15136- }))
15133+ let current_index = self.index;
15134+ match self.parse_expr() {
15135+ Ok(expr) => Ok(Statement::Return(ReturnStatement {
15136+ value: Some(ReturnStatementValue::Expr(expr)),
15137+ })),
15138+ Err(_) => {
15139+ self.index = current_index;
15140+ Ok(Statement::Return(ReturnStatement { value: None }))
15141+ }
15142+ }
1513715143 }
1513815144
1513915145 /// 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