From 3e66856695c0b9e04ed2e0bf1d2269a351bb213f Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Tue, 15 Oct 2024 13:46:43 -0400 Subject: [PATCH 1/2] feat: use dialect when tokenizing --- superset/sql/parse.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/superset/sql/parse.py b/superset/sql/parse.py index 33ed76473facc..2c7276baba00a 100644 --- a/superset/sql/parse.py +++ b/superset/sql/parse.py @@ -276,7 +276,7 @@ def split_script( script: str, engine: str, ) -> list[SQLStatement]: - if engine in SQLGLOT_DIALECTS: + if dialect := SQLGLOT_DIALECTS.get(engine): try: return [ cls(ast.sql(), engine, ast) @@ -297,7 +297,7 @@ def split_script( remainder = script try: - tokens = sqlglot.tokenize(script) + tokens = sqlglot.tokenize(script, dialect) except sqlglot.errors.TokenError as ex: raise SupersetParseError( script, From 1a18261b2030006edd3a2bbe8dc61aed33d69d28 Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Tue, 15 Oct 2024 14:16:49 -0400 Subject: [PATCH 2/2] Update test --- tests/unit_tests/sql_parse_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit_tests/sql_parse_tests.py b/tests/unit_tests/sql_parse_tests.py index 44d52c7f6e8fb..cf6eda3dda7f0 100644 --- a/tests/unit_tests/sql_parse_tests.py +++ b/tests/unit_tests/sql_parse_tests.py @@ -281,7 +281,7 @@ def test_extract_tables_illdefined() -> None: extract_tables('SELECT * FROM "tbname') assert ( str(excinfo.value) - == "You may have an error in your SQL statement. Unable to parse script" + == "You may have an error in your SQL statement. Unable to tokenize script" ) # odd edge case that works