diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index 0ed21fcd7efb4..fad3123bf2ef5 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -517,6 +517,7 @@ def visit_column(element, compiler, **kw): ) logging.info(sql) sql = sqlparse.format(sql, reindent=True) + sql = self.database.db_engine_spec.sql_preprocessor(sql) return sql def query(self, query_obj): diff --git a/superset/db_engine_specs.py b/superset/db_engine_specs.py index 533ae74e927c3..e0a29304f63a2 100644 --- a/superset/db_engine_specs.py +++ b/superset/db_engine_specs.py @@ -115,9 +115,9 @@ def extract_error_message(cls, e): def sql_preprocessor(cls, sql): """If the SQL needs to be altered prior to running it - For example Presto needs to double `%` characters + For example db api needs to double `%` characters """ - return sql + return sql.replace('%', '%%') @classmethod def patch(cls): @@ -279,10 +279,6 @@ def patch(cls): from superset.db_engines import presto as patched_presto presto.Cursor.cancel = patched_presto.cancel - @classmethod - def sql_preprocessor(cls, sql): - return sql.replace('%', '%%') - @classmethod def convert_dttm(cls, target_type, dttm): tt = target_type.upper()