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 <[email protected]> AuthorDate: Tue May 23 10:15:24 2023 +0300 chore: Bump sqlparse to 0.4.4 (#24045) Co-authored-by: sebastianliebscher <[email protected]> --- 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):
