From e2ecf89d7ead15152dc4b827aae3ce7de7b35d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Milenkovi=C4=87?= Date: Sat, 16 Mar 2024 18:31:57 +0000 Subject: [PATCH 1/2] Add support for $$ in generic dialect ... ... in `create function` closes #1183 --- src/parser/mod.rs | 2 +- tests/sqlparser_postgres.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parser/mod.rs b/src/parser/mod.rs index a7190563f..5bdaf5c6c 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -5954,7 +5954,7 @@ impl<'a> Parser<'a> { pub fn parse_function_definition(&mut self) -> Result { let peek_token = self.peek_token(); match peek_token.token { - Token::DollarQuotedString(value) if dialect_of!(self is PostgreSqlDialect) => { + Token::DollarQuotedString(value) if dialect_of!(self is PostgreSqlDialect | GenericDialect) => { self.next_token(); Ok(FunctionDefinition::DoubleDollarDef(value.value)) } diff --git a/tests/sqlparser_postgres.rs b/tests/sqlparser_postgres.rs index 9de4b981f..4a92cd45c 100644 --- a/tests/sqlparser_postgres.rs +++ b/tests/sqlparser_postgres.rs @@ -3305,7 +3305,7 @@ fn parse_create_function() { let sql = "CREATE OR REPLACE FUNCTION add(a INTEGER, IN b INTEGER = 1) RETURNS INTEGER LANGUAGE SQL IMMUTABLE RETURN a + b"; assert_eq!( - pg().verified_stmt(sql), + pg_and_generic().verified_stmt(sql), Statement::CreateFunction { or_replace: true, temporary: false, From 0865eca638102b9498a31aad5ef91dd6906a5c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Milenkovi=C4=87?= Date: Sun, 24 Mar 2024 14:52:39 +0000 Subject: [PATCH 2/2] fix formatting --- src/parser/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 5bdaf5c6c..674d0692b 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -5954,7 +5954,8 @@ impl<'a> Parser<'a> { pub fn parse_function_definition(&mut self) -> Result { let peek_token = self.peek_token(); match peek_token.token { - Token::DollarQuotedString(value) if dialect_of!(self is PostgreSqlDialect | GenericDialect) => { + Token::DollarQuotedString(value) if dialect_of!(self is PostgreSqlDialect | GenericDialect) => + { self.next_token(); Ok(FunctionDefinition::DoubleDollarDef(value.value)) }