From d7562719cf99dcc9c055749e34fe0fd0a6e13828 Mon Sep 17 00:00:00 2001 From: Bogdan Kyryliuk Date: Tue, 14 Mar 2017 10:43:39 -0700 Subject: [PATCH] Preprocess the where clauses. --- superset/connectors/sqla/models.py | 1 + superset/db_engine_specs.py | 8 ++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index fec34b20eab3c..f2bad2fbbe1e7 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -509,6 +509,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()