From 77d4c890cfd0f55a07963014ad2bb3732ecc3c98 Mon Sep 17 00:00:00 2001 From: Kraiem Taha Yassine Date: Thu, 12 Dec 2024 17:12:29 +0100 Subject: [PATCH] Dev (#2867) * fix(chalice): fixed CH funnels query for new driver * fix(chalice): fixed CH funnels support for nonexistent sequence --- .../core/metrics/modules/significance/significance_ch.py | 9 +++++---- api/chalicelib/utils/ch_client_exp.py | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api/chalicelib/core/metrics/modules/significance/significance_ch.py b/api/chalicelib/core/metrics/modules/significance/significance_ch.py index 0dae4b59a..d01c49da0 100644 --- a/api/chalicelib/core/metrics/modules/significance/significance_ch.py +++ b/api/chalicelib/core/metrics/modules/significance/significance_ch.py @@ -7,6 +7,8 @@ import schemas from chalicelib.utils import ch_client from chalicelib.utils import exp_ch_helper from chalicelib.utils import helper +from chalicelib.utils import sql_helper as sh +from chalicelib.core import events logger = logging.getLogger(__name__) @@ -208,7 +210,7 @@ def get_simple_funnel(filter_d: schemas.CardSeriesFilterSchema, project: schemas sequences = [] projections = [] for i, s in enumerate(n_stages_query): - projections.append(f"SUM(T{i + 1}) AS stage{i + 1}") + projections.append(f"coalesce(SUM(T{i + 1}),0) AS stage{i + 1}") if i == 0: sequences.append(f"anyIf(1,{s}) AS T1") else: @@ -226,11 +228,10 @@ def get_simple_funnel(filter_d: schemas.CardSeriesFilterSchema, project: schemas FROM (SELECT {",".join(sequences)} FROM {MAIN_EVENTS_TABLE} AS e {extra_from} WHERE {" AND ".join(constraints)} - GROUP BY {group_by}) AS raw; - """ + GROUP BY {group_by}) AS raw;""" with ch_client.ClickHouseClient() as cur: - query = cur.format(n_stages_query, full_args) + query = cur.format(query=n_stages_query, parameters=full_args) logger.debug("---------------------------------------------------") logger.debug(query) logger.debug("---------------------------------------------------") diff --git a/api/chalicelib/utils/ch_client_exp.py b/api/chalicelib/utils/ch_client_exp.py index 8bdb4c20b..dc3c06041 100644 --- a/api/chalicelib/utils/ch_client_exp.py +++ b/api/chalicelib/utils/ch_client_exp.py @@ -35,7 +35,6 @@ if config("CH_COMPRESSION", cast=bool, default=True): def transform_result(original_function): @wraps(original_function) def wrapper(*args, **kwargs): - logger.info("Executing query on CH") result = original_function(*args, **kwargs) if isinstance(result, clickhouse_connect.driver.query.QueryResult): column_names = result.column_names