You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by el...@apache.org on 2023/12/02 01:21:00 UTC

(superset) 05/08: chore: Bump sqlparse to 0.4.4 (#24045)

This is an automated email from the ASF dual-hosted git repository.

elizabeth pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 056c5985d643a772b2b6cc510d6a34e2c20b1860
Author: EugeneTorap <ev...@gmail.com>
AuthorDate: Tue May 23 10:15:24 2023 +0300

    chore: Bump sqlparse to 0.4.4 (#24045)
    
    Co-authored-by: sebastianliebscher <li...@protonmail.ch>
---
 requirements/base.txt |  2 +-
 setup.py              |  2 +-
 superset/sql_parse.py | 16 ++++++++--------
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/requirements/base.txt b/requirements/base.txt
index 29b2932f2a..ca143b20e6 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -272,7 +272,7 @@ sqlalchemy-utils==0.38.3
     # via
     #   apache-superset
     #   flask-appbuilder
-sqlparse==0.4.3
+sqlparse==0.4.4
     # via apache-superset
 sshtunnel==0.4.0
     # via apache-superset
diff --git a/setup.py b/setup.py
index 05c6ca4ab5..7124e70f75 100644
--- a/setup.py
+++ b/setup.py
@@ -119,7 +119,7 @@ setup(
         "slack_sdk>=3.1.1, <4",
         "sqlalchemy>=1.4, <2",
         "sqlalchemy-utils>=0.38.3, <0.39",
-        "sqlparse>=0.4.3, <0.5",
+        "sqlparse>=0.4.4, <0.5",
         "tabulate>=0.8.9, <0.9",
         "typing-extensions>=4, <5",
         "waitress; sys_platform == 'win32'",
diff --git a/superset/sql_parse.py b/superset/sql_parse.py
index 81aebe0f41..821cd5f229 100644
--- a/superset/sql_parse.py
+++ b/superset/sql_parse.py
@@ -23,6 +23,8 @@ from urllib import parse
 
 import sqlparse
 from sqlalchemy import and_
+from sqlparse import keywords
+from sqlparse.lexer import Lexer
 from sqlparse.sql import (
     Identifier,
     IdentifierList,
@@ -59,15 +61,13 @@ CTE_PREFIX = "CTE__"
 
 logger = logging.getLogger(__name__)
 
-
 # TODO: Workaround for https://github.com/andialbrecht/sqlparse/issues/652.
-sqlparse.keywords.SQL_REGEX.insert(
-    0,
-    (
-        re.compile(r"'(''|\\\\|\\|[^'])*'", sqlparse.keywords.FLAGS).match,
-        sqlparse.tokens.String.Single,
-    ),
-)
+# configure the Lexer to extend sqlparse
+# reference: https://sqlparse.readthedocs.io/en/stable/extending/
+lex = Lexer.get_default_instance()
+sqlparser_sql_regex = keywords.SQL_REGEX
+sqlparser_sql_regex.insert(25, (r"'(''|\\\\|\\|[^'])*'", sqlparse.tokens.String.Single))
+lex.set_SQL_REGEX(sqlparser_sql_regex)
 
 
 class CtasMethod(str, Enum):