diff --git a/src/parser/mod.rs b/src/parser/mod.rs index c499829cd..dc5299455 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -17368,7 +17368,11 @@ impl<'a> Parser<'a> { { None } else { + let has_parentheses = self.consume_token(&Token::LParen); let name = self.parse_object_name(false)?; + if has_parentheses { + self.expect_token(&Token::RParen)?; + } Some(name) }; diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs index cfee26214..da8e7b495 100644 --- a/tests/sqlparser_common.rs +++ b/tests/sqlparser_common.rs @@ -12120,6 +12120,8 @@ fn parse_execute_stored_procedure() { } _ => unreachable!(), } + // Test optional parentheses around procedure name + ms_and_generic().one_statement_parses_to("EXEC ('name')", "EXECUTE 'name'"); } #[test]