mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
fix: Unable to parse escaped tables (#30560)
This commit is contained in:
committed by
GitHub
parent
a849c29288
commit
fc857d987b
@@ -28,7 +28,6 @@ import sqlparse
|
||||
from flask_babel import gettext as __
|
||||
from jinja2 import nodes
|
||||
from sqlalchemy import and_
|
||||
from sqlglot.dialects.dialect import Dialects
|
||||
from sqlparse import keywords
|
||||
from sqlparse.lexer import Lexer
|
||||
from sqlparse.sql import (
|
||||
@@ -61,7 +60,12 @@ from superset.exceptions import (
|
||||
SupersetParseError,
|
||||
SupersetSecurityException,
|
||||
)
|
||||
from superset.sql.parse import extract_tables_from_statement, SQLScript, Table
|
||||
from superset.sql.parse import (
|
||||
extract_tables_from_statement,
|
||||
SQLGLOT_DIALECTS,
|
||||
SQLScript,
|
||||
Table,
|
||||
)
|
||||
from superset.utils.backports import StrEnum
|
||||
|
||||
try:
|
||||
@@ -88,61 +92,6 @@ sqlparser_sql_regex.insert(25, (r"'(''|\\\\|\\|[^'])*'", sqlparse.tokens.String.
|
||||
lex.set_SQL_REGEX(sqlparser_sql_regex)
|
||||
|
||||
|
||||
# mapping between DB engine specs and sqlglot dialects
|
||||
SQLGLOT_DIALECTS = {
|
||||
"ascend": Dialects.HIVE,
|
||||
"awsathena": Dialects.PRESTO,
|
||||
"bigquery": Dialects.BIGQUERY,
|
||||
"clickhouse": Dialects.CLICKHOUSE,
|
||||
"clickhousedb": Dialects.CLICKHOUSE,
|
||||
"cockroachdb": Dialects.POSTGRES,
|
||||
"couchbase": Dialects.MYSQL,
|
||||
# "crate": ???
|
||||
# "databend": ???
|
||||
"databricks": Dialects.DATABRICKS,
|
||||
# "db2": ???
|
||||
# "dremio": ???
|
||||
"drill": Dialects.DRILL,
|
||||
# "druid": ???
|
||||
"duckdb": Dialects.DUCKDB,
|
||||
# "dynamodb": ???
|
||||
# "elasticsearch": ???
|
||||
# "exa": ???
|
||||
# "firebird": ???
|
||||
# "firebolt": ???
|
||||
"gsheets": Dialects.SQLITE,
|
||||
"hana": Dialects.POSTGRES,
|
||||
"hive": Dialects.HIVE,
|
||||
# "ibmi": ???
|
||||
# "impala": ???
|
||||
# "kustokql": ???
|
||||
# "kylin": ???
|
||||
"mssql": Dialects.TSQL,
|
||||
"mysql": Dialects.MYSQL,
|
||||
"netezza": Dialects.POSTGRES,
|
||||
# "ocient": ???
|
||||
# "odelasticsearch": ???
|
||||
"oracle": Dialects.ORACLE,
|
||||
# "pinot": ???
|
||||
"postgresql": Dialects.POSTGRES,
|
||||
"presto": Dialects.PRESTO,
|
||||
"pydoris": Dialects.DORIS,
|
||||
"redshift": Dialects.REDSHIFT,
|
||||
# "risingwave": ???
|
||||
# "rockset": ???
|
||||
"shillelagh": Dialects.SQLITE,
|
||||
"snowflake": Dialects.SNOWFLAKE,
|
||||
# "solr": ???
|
||||
"spark": Dialects.SPARK,
|
||||
"sqlite": Dialects.SQLITE,
|
||||
"starrocks": Dialects.STARROCKS,
|
||||
"superset": Dialects.SQLITE,
|
||||
"teradatasql": Dialects.TERADATA,
|
||||
"trino": Dialects.TRINO,
|
||||
"vertica": Dialects.POSTGRES,
|
||||
}
|
||||
|
||||
|
||||
class CtasMethod(StrEnum):
|
||||
TABLE = "TABLE"
|
||||
VIEW = "VIEW"
|
||||
|
||||
Reference in New Issue
Block a user