Api v1.15.0 (#1645)
* feature(chalice): support exact issue search for PG * feature(chalice): support exact issue search for CH
This commit is contained in:
parent
c881318e11
commit
aeca1a59d3
3 changed files with 24 additions and 3 deletions
|
|
@ -1045,7 +1045,6 @@ def search_query_parts(data: schemas.SessionsSearchPayloadSchema, error_status,
|
|||
full_args["issue_contextString"] = issue["contextString"]
|
||||
full_args["issue_type"] = issue["type"]
|
||||
elif len(issues) > 0:
|
||||
print(issues)
|
||||
issues_conditions = []
|
||||
for i, f in enumerate(issues):
|
||||
f_k_v = f"f_issue_v{i}"
|
||||
|
|
|
|||
|
|
@ -18,9 +18,9 @@ else:
|
|||
from . import errors as errors
|
||||
|
||||
if config("EXP_SESSIONS_SEARCH_METRIC", cast=bool, default=False):
|
||||
from chalicelib.core import sessions_legacy as sessions
|
||||
else:
|
||||
from chalicelib.core import sessions
|
||||
else:
|
||||
from chalicelib.core import sessions_legacy as sessions
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
PIE_CHART_GROUP = 5
|
||||
|
|
|
|||
|
|
@ -417,6 +417,7 @@ def search_query_parts_ch(data: schemas.SessionsSearchPayloadSchema, error_statu
|
|||
WHERE user_id = %(userId)s)""")
|
||||
extra_from = ""
|
||||
events_query_part = ""
|
||||
issues = []
|
||||
__events_where_basic = ["project_id = %(projectId)s",
|
||||
"datetime >= toDateTime(%(startDate)s/1000)",
|
||||
"datetime <= toDateTime(%(endDate)s/1000)"]
|
||||
|
|
@ -643,6 +644,9 @@ def search_query_parts_ch(data: schemas.SessionsSearchPayloadSchema, error_statu
|
|||
extra_constraints.append("notEmpty(s.issue_types)")
|
||||
ss_constraints.append("notEmpty(ms.issue_types)")
|
||||
else:
|
||||
if f.source:
|
||||
issues.append(f)
|
||||
|
||||
extra_constraints.append(f"hasAny(s.issue_types,%({f_k})s)")
|
||||
# _multiple_conditions(f"%({f_k})s {op} ANY (s.issue_types)", f.value, is_not=is_not,
|
||||
# value_key=f_k))
|
||||
|
|
@ -1324,6 +1328,24 @@ def search_query_parts_ch(data: schemas.SessionsSearchPayloadSchema, error_statu
|
|||
"""
|
||||
full_args["issue_contextString"] = issue["contextString"]
|
||||
full_args["issue_type"] = issue["type"]
|
||||
elif len(issues) > 0:
|
||||
issues_conditions = []
|
||||
for i, f in enumerate(issues):
|
||||
f_k_v = f"f_issue_v{i}"
|
||||
f_k_s = f_k_v + "_source"
|
||||
full_args = {**full_args, **_multiple_values(f.value, value_key=f_k_v), f_k_s: f.source}
|
||||
issues_conditions.append(_multiple_conditions(f"issues.type=%({f_k_v})s", f.value,
|
||||
value_key=f_k_v))
|
||||
issues_conditions[-1] = f"({issues_conditions[-1]} AND issues.context_string=%({f_k_s})s)"
|
||||
extra_join = f"""INNER JOIN (SELECT DISTINCT events.session_id
|
||||
FROM experimental.issues
|
||||
INNER JOIN experimental.events USING (issue_id)
|
||||
WHERE issues.project_id = %(projectId)s
|
||||
AND events.project_id = %(projectId)s
|
||||
AND events.datetime >= toDateTime(%(startDate)s/1000)
|
||||
AND events.datetime <= toDateTime(%(endDate)s/1000)
|
||||
AND {" OR ".join(issues_conditions)}
|
||||
) AS issues USING (session_id)"""
|
||||
|
||||
if extra_event:
|
||||
extra_event = f"INNER JOIN ({extra_event}) AS extra_event USING(session_id)"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue