@@ -4556,7 +4556,7 @@ impl<'a> Parser<'a> {
45564556 } else if self.parse_keyword(Keyword::EXTERNAL) {
45574557 self.parse_create_external_table(or_replace)
45584558 } else if self.parse_keyword(Keyword::FUNCTION) {
4559- self.parse_create_function(or_replace, temporary)
4559+ self.parse_create_function(or_alter, or_replace, temporary)
45604560 } else if self.parse_keyword(Keyword::TRIGGER) {
45614561 self.parse_create_trigger(or_replace, false)
45624562 } else if self.parse_keywords(&[Keyword::CONSTRAINT, Keyword::TRIGGER]) {
@@ -4865,6 +4865,7 @@ impl<'a> Parser<'a> {
48654865
48664866 pub fn parse_create_function(
48674867 &mut self,
4868+ or_alter: bool,
48684869 or_replace: bool,
48694870 temporary: bool,
48704871 ) -> Result<Statement, ParserError> {
@@ -4877,7 +4878,7 @@ impl<'a> Parser<'a> {
48774878 } else if dialect_of!(self is BigQueryDialect) {
48784879 self.parse_bigquery_create_function(or_replace, temporary)
48794880 } else if dialect_of!(self is MsSqlDialect) {
4880- self.parse_mssql_create_function(or_replace, temporary)
4881+ self.parse_mssql_create_function(or_alter, or_replace, temporary)
48814882 } else {
48824883 self.prev_token();
48834884 self.expected("an object type after CREATE", self.peek_token())
@@ -4992,6 +4993,7 @@ impl<'a> Parser<'a> {
49924993 }
49934994
49944995 Ok(Statement::CreateFunction(CreateFunction {
4996+ or_alter: false,
49954997 or_replace,
49964998 temporary,
49974999 name,
@@ -5025,6 +5027,7 @@ impl<'a> Parser<'a> {
50255027 let using = self.parse_optional_create_function_using()?;
50265028
50275029 Ok(Statement::CreateFunction(CreateFunction {
5030+ or_alter: false,
50285031 or_replace,
50295032 temporary,
50305033 name,
@@ -5114,6 +5117,7 @@ impl<'a> Parser<'a> {
51145117 };
51155118
51165119 Ok(Statement::CreateFunction(CreateFunction {
5120+ or_alter: false,
51175121 or_replace,
51185122 temporary,
51195123 if_not_exists,
@@ -5137,6 +5141,7 @@ impl<'a> Parser<'a> {
51375141 /// [MsSql]: https://learn.microsoft.com/en-us/sql/t-sql/statements/create-function-transact-sql
51385142 fn parse_mssql_create_function(
51395143 &mut self,
5144+ or_alter: bool,
51405145 or_replace: bool,
51415146 temporary: bool,
51425147 ) -> Result<Statement, ParserError> {
@@ -5169,6 +5174,7 @@ impl<'a> Parser<'a> {
51695174 self.expect_keyword_is(Keyword::END)?;
51705175
51715176 Ok(Statement::CreateFunction(CreateFunction {
5177+ or_alter,
51725178 or_replace,
51735179 temporary,
51745180 if_not_exists: false,
0 commit comments