You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2024/05/01 13:34:08 UTC
(superset) 02/03: fix: % replace in `values_for_column` (#28271)
This is an automated email from the ASF dual-hosted git repository.
michaelsmolina pushed a commit to branch 4.0
in repository https://gitbox.apache.org/repos/asf/superset.git
commit cb182026401db7c4811674ce67d463842a47a560
Author: Beto Dealmeida <ro...@dealmeida.net>
AuthorDate: Tue Apr 30 19:15:56 2024 -0400
fix: % replace in `values_for_column` (#28271)
---
superset/models/helpers.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/superset/models/helpers.py b/superset/models/helpers.py
index c90fe99a5b..51b771ff61 100644
--- a/superset/models/helpers.py
+++ b/superset/models/helpers.py
@@ -552,7 +552,6 @@ class AuditMixinNullable(AuditMixin):
class QueryResult: # pylint: disable=too-few-public-methods
-
"""Object returned by the query interface"""
def __init__( # pylint: disable=too-many-arguments
@@ -1377,10 +1376,14 @@ class ExploreMixin: # pylint: disable=too-many-public-methods
qry = qry.where(self.get_fetch_values_predicate(template_processor=tp))
with self.database.get_sqla_engine_with_context() as engine:
- sql = qry.compile(engine, compile_kwargs={"literal_binds": True})
+ sql = str(qry.compile(engine, compile_kwargs={"literal_binds": True}))
sql = self._apply_cte(sql, cte)
sql = self.mutate_query_from_config(sql)
+ # pylint: disable=protected-access
+ if engine.dialect.identifier_preparer._double_percents:
+ sql = sql.replace("%%", "%")
+
df = pd.read_sql_query(sql=sql, con=engine)
# replace NaN with None to ensure it can be serialized to JSON
df = df.replace({np.nan: None})