From 094d1601d971315c903d2dac02032884a565d197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Obermu=CC=88ller?= Date: Wed, 21 Feb 2024 21:34:41 +0100 Subject: [PATCH 01/12] add funnel strict persons --- .../insights/funnels/__init__.py | 2 ++ .../insights/funnels/funnel_strict_persons.py | 28 +++++++++++++++++++ .../hogql_queries/insights/funnels/utils.py | 5 ++-- 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 posthog/hogql_queries/insights/funnels/funnel_strict_persons.py diff --git a/posthog/hogql_queries/insights/funnels/__init__.py b/posthog/hogql_queries/insights/funnels/__init__.py index 2e3275ff7fdfe..8f41fd33a490b 100644 --- a/posthog/hogql_queries/insights/funnels/__init__.py +++ b/posthog/hogql_queries/insights/funnels/__init__.py @@ -4,3 +4,5 @@ from .funnel_unordered import FunnelUnordered from .funnel_time_to_convert import FunnelTimeToConvert from .funnel_trends import FunnelTrends +from .funnel_persons import FunnelActors +from .funnel_strict_persons import FunnelStrictActors diff --git a/posthog/hogql_queries/insights/funnels/funnel_strict_persons.py b/posthog/hogql_queries/insights/funnels/funnel_strict_persons.py new file mode 100644 index 0000000000000..e77c3c342821a --- /dev/null +++ b/posthog/hogql_queries/insights/funnels/funnel_strict_persons.py @@ -0,0 +1,28 @@ +from typing import List + +from posthog.hogql import ast +from posthog.hogql_queries.insights.funnels.funnel import Funnel + + +class FunnelStrictActors(Funnel): + def actor_query( + self, + # extra_fields: Optional[List[str]] = None, + ) -> ast.SelectQuery: + select: List[ast.Expr] = [ + ast.Alias(alias="actor_id", expr=ast.Field(chain=["aggregation_target"])), + *self._get_funnel_person_step_events(), + *self._get_timestamp_outer_select(), + # {extra_fields} + ] + select_from = ast.JoinExpr(table=self.get_step_counts_query()) + where = self._get_funnel_person_step_condition() + order_by = [ast.OrderExpr(expr=ast.Field(chain=["aggregation_target"]))] + + return ast.SelectQuery( + select=select, + select_from=select_from, + order_by=order_by, + where=where, + # SETTINGS max_ast_elements=1000000, max_expanded_ast_elements=1000000 + ) diff --git a/posthog/hogql_queries/insights/funnels/utils.py b/posthog/hogql_queries/insights/funnels/utils.py index 5a987074eda5b..4112f66ef6edb 100644 --- a/posthog/hogql_queries/insights/funnels/utils.py +++ b/posthog/hogql_queries/insights/funnels/utils.py @@ -23,7 +23,7 @@ def get_funnel_order_class(funnelsFilter: FunnelsFilter): def get_funnel_actor_class(funnelsFilter: FunnelsFilter): - from posthog.hogql_queries.insights.funnels.funnel_persons import FunnelActors + from posthog.hogql_queries.insights.funnels import FunnelActors, FunnelStrictActors # if filter.correlation_person_entity and EE_AVAILABLE: if False: @@ -46,8 +46,7 @@ def get_funnel_actor_class(funnelsFilter: FunnelsFilter): return FunnelActors # return FunnelUnorderedActors elif funnelsFilter.funnelOrderType == StepOrderValue.strict: - return FunnelActors - # return FunnelStrictActors + return FunnelStrictActors else: return FunnelActors From ce7cc842b8f988e9f73e7b68bb77802538f6955b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Obermu=CC=88ller?= Date: Wed, 21 Feb 2024 21:40:55 +0100 Subject: [PATCH 02/12] add tests --- .../test/test_funnel_strict_persons.py | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py diff --git a/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py b/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py new file mode 100644 index 0000000000000..4500a73bffe67 --- /dev/null +++ b/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py @@ -0,0 +1,283 @@ +from datetime import datetime, timedelta +from typing import Any, Dict, List, cast +from uuid import UUID + +from django.utils import timezone +from freezegun import freeze_time + +from posthog.constants import INSIGHT_FUNNELS +from posthog.hogql_queries.actors_query_runner import ActorsQueryRunner +from posthog.hogql_queries.legacy_compatibility.filter_to_query import filter_to_query +from posthog.schema import ActorsQuery, FunnelsActorsQuery, FunnelsQuery +from posthog.session_recordings.queries.test.session_replay_sql import ( + produce_replay_summary, +) +from posthog.test.base import ( + APIBaseTest, + ClickhouseTestMixin, + _create_event, + _create_person, + snapshot_clickhouse_queries, +) +from posthog.test.test_journeys import journeys_for + +FORMAT_TIME = "%Y-%m-%d 00:00:00" + + +class TestFunnelStrictStepsPersons(ClickhouseTestMixin, APIBaseTest): + def _get_actors( + self, + filters: Dict[str, Any], + funnelStep: int | None = None, + funnelCustomSteps: List[int] | None = None, + funnelStepBreakdown: str | float | List[str | float] | None = None, + offset: int | None = None, + ): + funnels_query = cast(FunnelsQuery, filter_to_query(filters)) + funnel_actors_query = FunnelsActorsQuery( + source=funnels_query, + funnelStep=funnelStep, + funnelCustomSteps=funnelCustomSteps, + funnelStepBreakdown=funnelStepBreakdown, + ) + actors_query = ActorsQuery(source=funnel_actors_query, offset=offset) + response = ActorsQueryRunner(query=actors_query, team=self.team).calculate() + return response.results + + def _create_sample_data_multiple_dropoffs(self): + events_by_person = {} + for i in range(5): + events_by_person[f"user_{i}"] = [ + {"event": "step one", "timestamp": datetime(2021, 5, 1)}, + {"event": "step fake", "timestamp": datetime(2021, 5, 2)}, + {"event": "step two", "timestamp": datetime(2021, 5, 3)}, + {"event": "step three", "timestamp": datetime(2021, 5, 5)}, + ] + + for i in range(5, 15): + events_by_person[f"user_{i}"] = [ + {"event": "step one", "timestamp": datetime(2021, 5, 1)}, + {"event": "step two", "timestamp": datetime(2021, 5, 3)}, + ] + + for i in range(15, 35): + events_by_person[f"user_{i}"] = [{"event": "step one", "timestamp": datetime(2021, 5, 1)}] + + journeys_for(events_by_person, self.team) + + def test_first_step(self): + self._create_sample_data_multiple_dropoffs() + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "strict", + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 00:00:00", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + results = self._get_actors(filters, funnelStep=1) + + self.assertEqual(35, len(results)) + + def test_second_step(self): + self._create_sample_data_multiple_dropoffs() + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "strict", + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 00:00:00", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + results = self._get_actors(filters, funnelStep=2) + + self.assertEqual(10, len(results)) + + def test_second_step_dropoff(self): + self._create_sample_data_multiple_dropoffs() + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "strict", + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 00:00:00", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + results = self._get_actors(filters, funnelStep=-2) + + self.assertEqual(25, len(results)) + + def test_third_step(self): + self._create_sample_data_multiple_dropoffs() + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "strict", + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 00:00:00", + "funnel_window_days": 7, + "funnel_step": 3, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + results = self._get_actors(filters, funnelStep=3) + + self.assertEqual(0, len(results)) + + @snapshot_clickhouse_queries + @freeze_time("2021-01-02 00:00:00.000Z") + def test_strict_funnel_person_recordings(self): + p1 = _create_person(distinct_ids=[f"user_1"], team=self.team) + _create_event( + event="step one", + distinct_id="user_1", + team=self.team, + timestamp=timezone.now().strftime("%Y-%m-%d %H:%M:%S.%f"), + properties={"$session_id": "s1", "$window_id": "w1"}, + event_uuid="11111111-1111-1111-1111-111111111111", + ) + _create_event( + event="step two", + distinct_id="user_1", + team=self.team, + timestamp=(timezone.now() + timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S.%f"), + properties={"$session_id": "s2", "$window_id": "w2"}, + event_uuid="21111111-1111-1111-1111-111111111111", + ) + _create_event( + event="interupting step", + distinct_id="user_1", + team=self.team, + timestamp=(timezone.now() + timedelta(days=2)).strftime("%Y-%m-%d %H:%M:%S.%f"), + properties={"$session_id": "s2", "$window_id": "w2"}, + event_uuid="21111111-1111-1111-1111-111111111111", + ) + _create_event( + event="step three", + distinct_id="user_1", + team=self.team, + timestamp=(timezone.now() + timedelta(days=3)).strftime("%Y-%m-%d %H:%M:%S.%f"), + properties={"$session_id": "s2", "$window_id": "w2"}, + event_uuid="21111111-1111-1111-1111-111111111111", + ) + timestamp = datetime(2021, 1, 3, 0, 0, 0) + produce_replay_summary( + team_id=self.team.pk, + session_id="s2", + distinct_id="user_1", + first_timestamp=timestamp, + last_timestamp=timestamp, + ) + + # First event, but no recording + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "strict", + "date_from": "2021-01-01", + "date_to": "2021-01-08", + "interval": "day", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + # "include_recordings": "true", + results = self._get_actors(filters, funnelStep=1) + + self.assertEqual(results[0]["id"], p1.uuid) + self.assertEqual(results[0]["matched_recordings"], []) + + # Second event, with recording + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "strict", + "date_from": "2021-01-01", + "date_to": "2021-01-08", + "interval": "day", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + # "include_recordings": "true", + results = self._get_actors(filters, funnelStep=2) + + self.assertEqual(results[0]["id"], p1.uuid) + self.assertEqual( + results[0]["matched_recordings"], + [ + { + "session_id": "s2", + "events": [ + { + "uuid": UUID("21111111-1111-1111-1111-111111111111"), + "timestamp": timezone.now() + timedelta(days=1), + "window_id": "w2", + } + ], + } + ], + ) + + # Third event dropoff, with recording + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "strict", + "date_from": "2021-01-01", + "date_to": "2021-01-08", + "interval": "day", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + # "include_recordings": "true", + results = self._get_actors(filters, funnelStep=-3) + + self.assertEqual(results[0]["id"], p1.uuid) + self.assertEqual( + results[0]["matched_recordings"], + [ + { + "session_id": "s2", + "events": [ + { + "uuid": UUID("21111111-1111-1111-1111-111111111111"), + "timestamp": timezone.now() + timedelta(days=1), + "window_id": "w2", + } + ], + } + ], + ) From 55712710fbcf9840d6cd1b4c2d5f91c6ad139a32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Obermu=CC=88ller?= Date: Wed, 21 Feb 2024 21:41:19 +0100 Subject: [PATCH 03/12] comment out recordings test --- .../test/test_funnel_strict_persons.py | 263 +++++++++--------- 1 file changed, 127 insertions(+), 136 deletions(-) diff --git a/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py b/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py index 4500a73bffe67..e6900c6ddedef 100644 --- a/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py +++ b/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py @@ -1,23 +1,14 @@ -from datetime import datetime, timedelta +from datetime import datetime from typing import Any, Dict, List, cast -from uuid import UUID -from django.utils import timezone -from freezegun import freeze_time from posthog.constants import INSIGHT_FUNNELS from posthog.hogql_queries.actors_query_runner import ActorsQueryRunner from posthog.hogql_queries.legacy_compatibility.filter_to_query import filter_to_query from posthog.schema import ActorsQuery, FunnelsActorsQuery, FunnelsQuery -from posthog.session_recordings.queries.test.session_replay_sql import ( - produce_replay_summary, -) from posthog.test.base import ( APIBaseTest, ClickhouseTestMixin, - _create_event, - _create_person, - snapshot_clickhouse_queries, ) from posthog.test.test_journeys import journeys_for @@ -146,138 +137,138 @@ def test_third_step(self): self.assertEqual(0, len(results)) - @snapshot_clickhouse_queries - @freeze_time("2021-01-02 00:00:00.000Z") - def test_strict_funnel_person_recordings(self): - p1 = _create_person(distinct_ids=[f"user_1"], team=self.team) - _create_event( - event="step one", - distinct_id="user_1", - team=self.team, - timestamp=timezone.now().strftime("%Y-%m-%d %H:%M:%S.%f"), - properties={"$session_id": "s1", "$window_id": "w1"}, - event_uuid="11111111-1111-1111-1111-111111111111", - ) - _create_event( - event="step two", - distinct_id="user_1", - team=self.team, - timestamp=(timezone.now() + timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S.%f"), - properties={"$session_id": "s2", "$window_id": "w2"}, - event_uuid="21111111-1111-1111-1111-111111111111", - ) - _create_event( - event="interupting step", - distinct_id="user_1", - team=self.team, - timestamp=(timezone.now() + timedelta(days=2)).strftime("%Y-%m-%d %H:%M:%S.%f"), - properties={"$session_id": "s2", "$window_id": "w2"}, - event_uuid="21111111-1111-1111-1111-111111111111", - ) - _create_event( - event="step three", - distinct_id="user_1", - team=self.team, - timestamp=(timezone.now() + timedelta(days=3)).strftime("%Y-%m-%d %H:%M:%S.%f"), - properties={"$session_id": "s2", "$window_id": "w2"}, - event_uuid="21111111-1111-1111-1111-111111111111", - ) - timestamp = datetime(2021, 1, 3, 0, 0, 0) - produce_replay_summary( - team_id=self.team.pk, - session_id="s2", - distinct_id="user_1", - first_timestamp=timestamp, - last_timestamp=timestamp, - ) + # @snapshot_clickhouse_queries + # @freeze_time("2021-01-02 00:00:00.000Z") + # def test_strict_funnel_person_recordings(self): + # p1 = _create_person(distinct_ids=[f"user_1"], team=self.team) + # _create_event( + # event="step one", + # distinct_id="user_1", + # team=self.team, + # timestamp=timezone.now().strftime("%Y-%m-%d %H:%M:%S.%f"), + # properties={"$session_id": "s1", "$window_id": "w1"}, + # event_uuid="11111111-1111-1111-1111-111111111111", + # ) + # _create_event( + # event="step two", + # distinct_id="user_1", + # team=self.team, + # timestamp=(timezone.now() + timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S.%f"), + # properties={"$session_id": "s2", "$window_id": "w2"}, + # event_uuid="21111111-1111-1111-1111-111111111111", + # ) + # _create_event( + # event="interupting step", + # distinct_id="user_1", + # team=self.team, + # timestamp=(timezone.now() + timedelta(days=2)).strftime("%Y-%m-%d %H:%M:%S.%f"), + # properties={"$session_id": "s2", "$window_id": "w2"}, + # event_uuid="21111111-1111-1111-1111-111111111111", + # ) + # _create_event( + # event="step three", + # distinct_id="user_1", + # team=self.team, + # timestamp=(timezone.now() + timedelta(days=3)).strftime("%Y-%m-%d %H:%M:%S.%f"), + # properties={"$session_id": "s2", "$window_id": "w2"}, + # event_uuid="21111111-1111-1111-1111-111111111111", + # ) + # timestamp = datetime(2021, 1, 3, 0, 0, 0) + # produce_replay_summary( + # team_id=self.team.pk, + # session_id="s2", + # distinct_id="user_1", + # first_timestamp=timestamp, + # last_timestamp=timestamp, + # ) - # First event, but no recording - filters = { - "insight": INSIGHT_FUNNELS, - "funnel_order_type": "strict", - "date_from": "2021-01-01", - "date_to": "2021-01-08", - "interval": "day", - "funnel_window_days": 7, - "events": [ - {"id": "step one", "order": 0}, - {"id": "step two", "order": 1}, - {"id": "step three", "order": 2}, - ], - } + # # First event, but no recording + # filters = { + # "insight": INSIGHT_FUNNELS, + # "funnel_order_type": "strict", + # "date_from": "2021-01-01", + # "date_to": "2021-01-08", + # "interval": "day", + # "funnel_window_days": 7, + # "events": [ + # {"id": "step one", "order": 0}, + # {"id": "step two", "order": 1}, + # {"id": "step three", "order": 2}, + # ], + # } - # "include_recordings": "true", - results = self._get_actors(filters, funnelStep=1) + # # "include_recordings": "true", + # results = self._get_actors(filters, funnelStep=1) - self.assertEqual(results[0]["id"], p1.uuid) - self.assertEqual(results[0]["matched_recordings"], []) + # self.assertEqual(results[0]["id"], p1.uuid) + # self.assertEqual(results[0]["matched_recordings"], []) - # Second event, with recording - filters = { - "insight": INSIGHT_FUNNELS, - "funnel_order_type": "strict", - "date_from": "2021-01-01", - "date_to": "2021-01-08", - "interval": "day", - "funnel_window_days": 7, - "events": [ - {"id": "step one", "order": 0}, - {"id": "step two", "order": 1}, - {"id": "step three", "order": 2}, - ], - } + # # Second event, with recording + # filters = { + # "insight": INSIGHT_FUNNELS, + # "funnel_order_type": "strict", + # "date_from": "2021-01-01", + # "date_to": "2021-01-08", + # "interval": "day", + # "funnel_window_days": 7, + # "events": [ + # {"id": "step one", "order": 0}, + # {"id": "step two", "order": 1}, + # {"id": "step three", "order": 2}, + # ], + # } - # "include_recordings": "true", - results = self._get_actors(filters, funnelStep=2) + # # "include_recordings": "true", + # results = self._get_actors(filters, funnelStep=2) - self.assertEqual(results[0]["id"], p1.uuid) - self.assertEqual( - results[0]["matched_recordings"], - [ - { - "session_id": "s2", - "events": [ - { - "uuid": UUID("21111111-1111-1111-1111-111111111111"), - "timestamp": timezone.now() + timedelta(days=1), - "window_id": "w2", - } - ], - } - ], - ) + # self.assertEqual(results[0]["id"], p1.uuid) + # self.assertEqual( + # results[0]["matched_recordings"], + # [ + # { + # "session_id": "s2", + # "events": [ + # { + # "uuid": UUID("21111111-1111-1111-1111-111111111111"), + # "timestamp": timezone.now() + timedelta(days=1), + # "window_id": "w2", + # } + # ], + # } + # ], + # ) - # Third event dropoff, with recording - filters = { - "insight": INSIGHT_FUNNELS, - "funnel_order_type": "strict", - "date_from": "2021-01-01", - "date_to": "2021-01-08", - "interval": "day", - "funnel_window_days": 7, - "events": [ - {"id": "step one", "order": 0}, - {"id": "step two", "order": 1}, - {"id": "step three", "order": 2}, - ], - } + # # Third event dropoff, with recording + # filters = { + # "insight": INSIGHT_FUNNELS, + # "funnel_order_type": "strict", + # "date_from": "2021-01-01", + # "date_to": "2021-01-08", + # "interval": "day", + # "funnel_window_days": 7, + # "events": [ + # {"id": "step one", "order": 0}, + # {"id": "step two", "order": 1}, + # {"id": "step three", "order": 2}, + # ], + # } - # "include_recordings": "true", - results = self._get_actors(filters, funnelStep=-3) + # # "include_recordings": "true", + # results = self._get_actors(filters, funnelStep=-3) - self.assertEqual(results[0]["id"], p1.uuid) - self.assertEqual( - results[0]["matched_recordings"], - [ - { - "session_id": "s2", - "events": [ - { - "uuid": UUID("21111111-1111-1111-1111-111111111111"), - "timestamp": timezone.now() + timedelta(days=1), - "window_id": "w2", - } - ], - } - ], - ) + # self.assertEqual(results[0]["id"], p1.uuid) + # self.assertEqual( + # results[0]["matched_recordings"], + # [ + # { + # "session_id": "s2", + # "events": [ + # { + # "uuid": UUID("21111111-1111-1111-1111-111111111111"), + # "timestamp": timezone.now() + timedelta(days=1), + # "window_id": "w2", + # } + # ], + # } + # ], + # ) From 7663a2cf33c42e9f2df6b2debc3b6443bb664c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Obermu=CC=88ller?= Date: Thu, 22 Feb 2024 11:48:27 +0100 Subject: [PATCH 04/12] add unordered actors --- .../insights/funnels/__init__.py | 1 + .../insights/funnels/funnel_strict_persons.py | 4 +- .../funnels/funnel_unordered_persons.py | 37 ++++ .../funnels/test/test_funnel_persons.py | 96 ++++----- .../test/test_funnel_strict_persons.py | 38 +--- .../test/test_funnel_unordered_persons.py | 185 ++++++++++++++++++ .../hogql_queries/insights/funnels/utils.py | 5 +- 7 files changed, 284 insertions(+), 82 deletions(-) create mode 100644 posthog/hogql_queries/insights/funnels/funnel_unordered_persons.py create mode 100644 posthog/hogql_queries/insights/funnels/test/test_funnel_unordered_persons.py diff --git a/posthog/hogql_queries/insights/funnels/__init__.py b/posthog/hogql_queries/insights/funnels/__init__.py index 8f41fd33a490b..ba30e81b82e01 100644 --- a/posthog/hogql_queries/insights/funnels/__init__.py +++ b/posthog/hogql_queries/insights/funnels/__init__.py @@ -6,3 +6,4 @@ from .funnel_trends import FunnelTrends from .funnel_persons import FunnelActors from .funnel_strict_persons import FunnelStrictActors +from .funnel_unordered_persons import FunnelUnorderedActors diff --git a/posthog/hogql_queries/insights/funnels/funnel_strict_persons.py b/posthog/hogql_queries/insights/funnels/funnel_strict_persons.py index e77c3c342821a..d457a50c93758 100644 --- a/posthog/hogql_queries/insights/funnels/funnel_strict_persons.py +++ b/posthog/hogql_queries/insights/funnels/funnel_strict_persons.py @@ -1,10 +1,10 @@ from typing import List from posthog.hogql import ast -from posthog.hogql_queries.insights.funnels.funnel import Funnel +from posthog.hogql_queries.insights.funnels.funnel_strict import FunnelStrict -class FunnelStrictActors(Funnel): +class FunnelStrictActors(FunnelStrict): def actor_query( self, # extra_fields: Optional[List[str]] = None, diff --git a/posthog/hogql_queries/insights/funnels/funnel_unordered_persons.py b/posthog/hogql_queries/insights/funnels/funnel_unordered_persons.py new file mode 100644 index 0000000000000..af8ebf90901b8 --- /dev/null +++ b/posthog/hogql_queries/insights/funnels/funnel_unordered_persons.py @@ -0,0 +1,37 @@ +from typing import List + +from posthog.hogql import ast +from posthog.hogql.parser import parse_expr +from posthog.hogql_queries.insights.funnels.funnel_unordered import FunnelUnordered + + +class FunnelUnorderedActors(FunnelUnordered): + def _get_funnel_person_step_events(self) -> List[ast.Expr]: + # Unordered funnels does not support matching events (and thereby recordings), + # but it simplifies the logic if we return an empty array for matching events + # if self._filter.include_recordings: + if False: # typing: ignore TODO: implement with recordings + return [parse_expr("array() as matching_events")] + return [] + + def actor_query( + self, + # extra_fields: Optional[List[str]] = None, + ) -> ast.SelectQuery: + select: List[ast.Expr] = [ + ast.Alias(alias="actor_id", expr=ast.Field(chain=["aggregation_target"])), + *self._get_funnel_person_step_events(), + *self._get_timestamp_outer_select(), + # {extra_fields} + ] + select_from = ast.JoinExpr(table=self.get_step_counts_query()) + where = self._get_funnel_person_step_condition() + order_by = [ast.OrderExpr(expr=ast.Field(chain=["aggregation_target"]))] + + return ast.SelectQuery( + select=select, + select_from=select_from, + order_by=order_by, + where=where, + # SETTINGS max_ast_elements=1000000, max_expanded_ast_elements=1000000 + ) diff --git a/posthog/hogql_queries/insights/funnels/test/test_funnel_persons.py b/posthog/hogql_queries/insights/funnels/test/test_funnel_persons.py index 33bd2bb77a25c..3b28a7caf8315 100644 --- a/posthog/hogql_queries/insights/funnels/test/test_funnel_persons.py +++ b/posthog/hogql_queries/insights/funnels/test/test_funnel_persons.py @@ -8,6 +8,7 @@ from posthog.models import Cohort from posthog.models.event.util import bulk_create_events from posthog.models.person.util import bulk_create_persons +from posthog.models.team.team import Team from posthog.schema import ActorsQuery, FunnelsActorsQuery, FunnelsQuery from posthog.test.base import ( APIBaseTest, @@ -24,26 +25,27 @@ PERSON_ID_COLUMN = 2 -class TestFunnelPersons(ClickhouseTestMixin, APIBaseTest): - def _get_actors( - self, - filters: Dict[str, Any], - funnelStep: int | None = None, - funnelCustomSteps: List[int] | None = None, - funnelStepBreakdown: str | float | List[str | float] | None = None, - offset: int | None = None, - ): - funnels_query = cast(FunnelsQuery, filter_to_query(filters)) - funnel_actors_query = FunnelsActorsQuery( - source=funnels_query, - funnelStep=funnelStep, - funnelCustomSteps=funnelCustomSteps, - funnelStepBreakdown=funnelStepBreakdown, - ) - actors_query = ActorsQuery(source=funnel_actors_query, offset=offset) - response = ActorsQueryRunner(query=actors_query, team=self.team).calculate() - return response.results +def get_actors( + filters: Dict[str, Any], + team: Team, + funnelStep: int | None = None, + funnelCustomSteps: List[int] | None = None, + funnelStepBreakdown: str | float | List[str | float] | None = None, + offset: int | None = None, +): + funnels_query = cast(FunnelsQuery, filter_to_query(filters)) + funnel_actors_query = FunnelsActorsQuery( + source=funnels_query, + funnelStep=funnelStep, + funnelCustomSteps=funnelCustomSteps, + funnelStepBreakdown=funnelStepBreakdown, + ) + actors_query = ActorsQuery(source=funnel_actors_query, offset=offset) + response = ActorsQueryRunner(query=actors_query, team=team).calculate() + return response.results + +class TestFunnelPersons(ClickhouseTestMixin, APIBaseTest): def _create_sample_data_multiple_dropoffs(self): for i in range(35): bulk_create_persons([{"distinct_ids": [f"user_{i}"], "team_id": self.team.pk}]) @@ -167,7 +169,7 @@ def test_first_step(self): ], } - results = self._get_actors(filters, funnelStep=1) + results = get_actors(filters, self.team, funnelStep=1) self.assertEqual(35, len(results)) @@ -186,7 +188,7 @@ def test_last_step(self): ], } - results = self._get_actors(filters, funnelStep=3) + results = get_actors(filters, self.team, funnelStep=3) self.assertEqual(5, len(results)) @@ -205,7 +207,7 @@ def test_second_step_dropoff(self): ], } - results = self._get_actors(filters, funnelStep=-2) + results = get_actors(filters, self.team, funnelStep=-2) self.assertEqual(20, len(results)) @@ -224,7 +226,7 @@ def test_last_step_dropoff(self): ], } - results = self._get_actors(filters, funnelStep=-3) + results = get_actors(filters, self.team, funnelStep=-3) self.assertEqual(10, len(results)) @@ -266,11 +268,11 @@ def test_basic_offset(self): } # fetch first 100 people - results = self._get_actors(filters, funnelStep=1) + results = get_actors(filters, self.team, funnelStep=1) self.assertEqual(100, len(results)) # fetch next 100 people (just 10 remaining) - results = self._get_actors(filters, funnelStep=1, offset=100) + results = get_actors(filters, self.team, funnelStep=1, offset=100) self.assertEqual(10, len(results)) def test_steps_with_custom_steps_parameter_are_equivalent_to_funnel_step(self): @@ -298,9 +300,9 @@ def test_steps_with_custom_steps_parameter_are_equivalent_to_funnel_step(self): ] for funnelStep, funnelCustomSteps, expected_count in parameters: - results = self._get_actors(filters, funnelStep=funnelStep) + results = get_actors(filters, self.team, funnelStep=funnelStep) - new_results = self._get_actors(filters, funnelStep=funnelStep, funnelCustomSteps=funnelCustomSteps) + new_results = get_actors(filters, self.team, funnelStep=funnelStep, funnelCustomSteps=funnelCustomSteps) self.assertEqual(new_results, results) self.assertEqual(len(results), expected_count) @@ -329,7 +331,7 @@ def test_steps_with_custom_steps_parameter_where_funnel_step_equivalence_isnt_po ] for funnelCustomSteps, expected_count in parameters: - new_results = self._get_actors(filters, funnelCustomSteps=funnelCustomSteps) + new_results = get_actors(filters, self.team, funnelCustomSteps=funnelCustomSteps) self.assertEqual(len(new_results), expected_count) @@ -348,8 +350,8 @@ def test_steps_with_custom_steps_parameter_overrides_funnel_step(self): ], } - results = self._get_actors( - filters, funnelStep=1, funnelCustomSteps=[3] + results = get_actors( + filters, self.team, funnelStep=1, funnelCustomSteps=[3] ) # funnelStep=1 means custom steps = [1,2,3] self.assertEqual(len(results), 5) @@ -372,13 +374,13 @@ def test_first_step_breakdowns(self): "breakdown": "$browser", } - results = self._get_actors(filters, funnelStep=1) + results = get_actors(filters, self.team, funnelStep=1) self.assertCountEqual([val[0]["id"] for val in results], [person1.uuid, person2.uuid]) - results = self._get_actors(filters, funnelStep=1, funnelStepBreakdown=["Chrome"]) + results = get_actors(filters, self.team, funnelStep=1, funnelStepBreakdown=["Chrome"]) self.assertCountEqual([val[0]["id"] for val in results], [person1.uuid]) - results = self._get_actors(filters, funnelStep=1, funnelStepBreakdown=["Safari"]) + results = get_actors(filters, self.team, funnelStep=1, funnelStepBreakdown=["Safari"]) self.assertCountEqual([val[0]["id"] for val in results], [person2.uuid]) def test_first_step_breakdowns_with_multi_property_breakdown(self): @@ -398,13 +400,13 @@ def test_first_step_breakdowns_with_multi_property_breakdown(self): "breakdown": ["$browser", "$browser_version"], } - results = self._get_actors(filters, funnelStep=1) + results = get_actors(filters, self.team, funnelStep=1) self.assertCountEqual([val[0]["id"] for val in results], [person1.uuid, person2.uuid]) - results = self._get_actors(filters, funnelStep=1, funnelStepBreakdown=["Chrome", "95"]) + results = get_actors(filters, self.team, funnelStep=1, funnelStepBreakdown=["Chrome", "95"]) self.assertCountEqual([val[0]["id"] for val in results], [person1.uuid]) - results = self._get_actors(filters, funnelStep=1, funnelStepBreakdown=["Safari", "14"]) + results = get_actors(filters, self.team, funnelStep=1, funnelStepBreakdown=["Safari", "14"]) self.assertCountEqual([val[0]["id"] for val in results], [person2.uuid]) @also_test_with_materialized_columns(person_properties=["$country"]) @@ -425,24 +427,24 @@ def test_first_step_breakdown_person(self): "breakdown": "$country", } - results = self._get_actors(filters, funnelStep=1) + results = get_actors(filters, self.team, funnelStep=1) self.assertCountEqual([val[0]["id"] for val in results], [person1.uuid, person2.uuid]) - results = self._get_actors(filters, funnelStep=1, funnelStepBreakdown=["EE"]) + results = get_actors(filters, self.team, funnelStep=1, funnelStepBreakdown=["EE"]) self.assertCountEqual([val[0]["id"] for val in results], [person2.uuid]) # Check custom_steps give same answers for breakdowns - custom_step_results = self._get_actors( - filters, funnelStep=1, funnelCustomSteps=[1, 2, 3], funnelStepBreakdown=["EE"] + custom_step_results = get_actors( + filters, self.team, funnelStep=1, funnelCustomSteps=[1, 2, 3], funnelStepBreakdown=["EE"] ) self.assertEqual(results, custom_step_results) - results = self._get_actors(filters, funnelStep=1, funnelStepBreakdown=["PL"]) + results = get_actors(filters, self.team, funnelStep=1, funnelStepBreakdown=["PL"]) self.assertCountEqual([val[0]["id"] for val in results], [person1.uuid]) # Check custom_steps give same answers for breakdowns - custom_step_results = self._get_actors( - filters, funnelStep=1, funnelCustomSteps=[1, 2, 3], funnelStepBreakdown=["PL"] + custom_step_results = get_actors( + filters, self.team, funnelStep=1, funnelCustomSteps=[1, 2, 3], funnelStepBreakdown=["PL"] ) self.assertEqual(results, custom_step_results) @@ -477,7 +479,7 @@ def test_funnel_cohort_breakdown_persons(self): "breakdown": [cohort.pk], } - results = self._get_actors(filters, funnelStep=1) + results = get_actors(filters, self.team, funnelStep=1) self.assertEqual(results[0][0]["id"], person.uuid) # @snapshot_clickhouse_queries @@ -523,7 +525,7 @@ def test_funnel_cohort_breakdown_persons(self): # ], # } # # "include_recordings": "true", - # results = self._get_actors(filters, funnelStep=1) + # results = get_actors(filters, self.team, funnelStep=1) # self.assertEqual(results[0]["id"], p1.uuid) # self.assertEqual(results[0]["matched_recordings"], []) @@ -541,7 +543,7 @@ def test_funnel_cohort_breakdown_persons(self): # ], # } # # "include_recordings": "true", - # results = self._get_actors(filters, funnelStep=2) + # results = get_actors(filters, self.team, funnelStep=2) # self.assertEqual(results[0]["id"], p1.uuid) # self.assertEqual( # results[0]["matched_recordings"], @@ -573,7 +575,7 @@ def test_funnel_cohort_breakdown_persons(self): # ], # } # # "include_recordings": "true", - # results = self._get_actors(filters, funnelStep=-3) + # results = get_actors(filters, self.team, funnelStep=-3) # self.assertEqual(results[0]["id"], p1.uuid) # self.assertEqual( # results[0]["matched_recordings"], diff --git a/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py b/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py index e6900c6ddedef..53ea15ed5e0ee 100644 --- a/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py +++ b/posthog/hogql_queries/insights/funnels/test/test_funnel_strict_persons.py @@ -1,11 +1,8 @@ from datetime import datetime -from typing import Any, Dict, List, cast from posthog.constants import INSIGHT_FUNNELS -from posthog.hogql_queries.actors_query_runner import ActorsQueryRunner -from posthog.hogql_queries.legacy_compatibility.filter_to_query import filter_to_query -from posthog.schema import ActorsQuery, FunnelsActorsQuery, FunnelsQuery +from posthog.hogql_queries.insights.funnels.test.test_funnel_persons import get_actors from posthog.test.base import ( APIBaseTest, ClickhouseTestMixin, @@ -16,25 +13,6 @@ class TestFunnelStrictStepsPersons(ClickhouseTestMixin, APIBaseTest): - def _get_actors( - self, - filters: Dict[str, Any], - funnelStep: int | None = None, - funnelCustomSteps: List[int] | None = None, - funnelStepBreakdown: str | float | List[str | float] | None = None, - offset: int | None = None, - ): - funnels_query = cast(FunnelsQuery, filter_to_query(filters)) - funnel_actors_query = FunnelsActorsQuery( - source=funnels_query, - funnelStep=funnelStep, - funnelCustomSteps=funnelCustomSteps, - funnelStepBreakdown=funnelStepBreakdown, - ) - actors_query = ActorsQuery(source=funnel_actors_query, offset=offset) - response = ActorsQueryRunner(query=actors_query, team=self.team).calculate() - return response.results - def _create_sample_data_multiple_dropoffs(self): events_by_person = {} for i in range(5): @@ -72,7 +50,7 @@ def test_first_step(self): ], } - results = self._get_actors(filters, funnelStep=1) + results = get_actors(filters, self.team, funnelStep=1) self.assertEqual(35, len(results)) @@ -92,7 +70,7 @@ def test_second_step(self): ], } - results = self._get_actors(filters, funnelStep=2) + results = get_actors(filters, self.team, funnelStep=2) self.assertEqual(10, len(results)) @@ -112,7 +90,7 @@ def test_second_step_dropoff(self): ], } - results = self._get_actors(filters, funnelStep=-2) + results = get_actors(filters, self.team, funnelStep=-2) self.assertEqual(25, len(results)) @@ -133,7 +111,7 @@ def test_third_step(self): ], } - results = self._get_actors(filters, funnelStep=3) + results = get_actors(filters, self.team, funnelStep=3) self.assertEqual(0, len(results)) @@ -198,7 +176,7 @@ def test_third_step(self): # } # # "include_recordings": "true", - # results = self._get_actors(filters, funnelStep=1) + # results = get_actors(filters, self.team, funnelStep=1) # self.assertEqual(results[0]["id"], p1.uuid) # self.assertEqual(results[0]["matched_recordings"], []) @@ -219,7 +197,7 @@ def test_third_step(self): # } # # "include_recordings": "true", - # results = self._get_actors(filters, funnelStep=2) + # results = get_actors(filters, self.team, funnelStep=2) # self.assertEqual(results[0]["id"], p1.uuid) # self.assertEqual( @@ -254,7 +232,7 @@ def test_third_step(self): # } # # "include_recordings": "true", - # results = self._get_actors(filters, funnelStep=-3) + # results = get_actors(filters, self.team, funnelStep=-3) # self.assertEqual(results[0]["id"], p1.uuid) # self.assertEqual( diff --git a/posthog/hogql_queries/insights/funnels/test/test_funnel_unordered_persons.py b/posthog/hogql_queries/insights/funnels/test/test_funnel_unordered_persons.py new file mode 100644 index 0000000000000..0d9861c1ff75c --- /dev/null +++ b/posthog/hogql_queries/insights/funnels/test/test_funnel_unordered_persons.py @@ -0,0 +1,185 @@ +from datetime import datetime + + +from posthog.constants import INSIGHT_FUNNELS +from posthog.hogql_queries.insights.funnels.test.test_funnel_persons import get_actors +from posthog.test.base import ( + APIBaseTest, + ClickhouseTestMixin, +) +from posthog.test.test_journeys import journeys_for + +FORMAT_TIME = "%Y-%m-%d 00:00:00" + + +class TestFunnelUnorderedStepsPersons(ClickhouseTestMixin, APIBaseTest): + def _create_sample_data_multiple_dropoffs(self): + events_by_person = {} + for i in range(5): + events_by_person[f"user_{i}"] = [ + {"event": "step one", "timestamp": datetime(2021, 5, 1)}, + {"event": "step three", "timestamp": datetime(2021, 5, 3)}, + {"event": "step two", "timestamp": datetime(2021, 5, 5)}, + ] + + for i in range(5, 15): + events_by_person[f"user_{i}"] = [ + {"event": "step two", "timestamp": datetime(2021, 5, 1)}, + {"event": "step one", "timestamp": datetime(2021, 5, 3)}, + ] + + for i in range(15, 35): + events_by_person[f"user_{i}"] = [{"event": "step one", "timestamp": datetime(2021, 5, 1)}] + + journeys_for(events_by_person, self.team) + + # def test_invalid_steps(self): + # filters = { + # "insight": INSIGHT_FUNNELS, + # "funnel_order_type": "unordered", + # "interval": "day", + # "date_from": "2021-05-01 00:00:00", + # "date_to": "2021-05-07 00:00:00", + # "funnel_window_days": 7, + # "events": [ + # {"id": "step one", "order": 0}, + # {"id": "step two", "order": 1}, + # {"id": "step three", "order": 2}, + # ], + # } + + # with self.assertRaises(ValueError): + # get_actors(filters, self.team, funnelStep="blah") # type: ignore + + # with pytest.raises(ValueError): + # get_actors(filters, self.team, funnelStep=-1) + + def test_first_step(self): + self._create_sample_data_multiple_dropoffs() + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "unordered", + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 00:00:00", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + results = get_actors(filters, self.team, funnelStep=1) + + self.assertEqual(35, len(results)) + + def test_last_step(self): + self._create_sample_data_multiple_dropoffs() + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "unordered", + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 00:00:00", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + results = get_actors(filters, self.team, funnelStep=3) + + self.assertEqual(5, len(results)) + + def test_second_step_dropoff(self): + self._create_sample_data_multiple_dropoffs() + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "unordered", + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 00:00:00", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + results = get_actors(filters, self.team, funnelStep=-2) + + self.assertEqual(20, len(results)) + + def test_last_step_dropoff(self): + self._create_sample_data_multiple_dropoffs() + filters = { + "insight": INSIGHT_FUNNELS, + "funnel_order_type": "unordered", + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 00:00:00", + "funnel_window_days": 7, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], + } + + results = get_actors(filters, self.team, funnelStep=-3) + + self.assertEqual(10, len(results)) + + # @snapshot_clickhouse_queries + # @freeze_time("2021-01-02 00:00:00.000Z") + # def test_unordered_funnel_does_not_return_recordings(self): + # p1 = _create_person(distinct_ids=[f"user_1"], team=self.team) + # _create_event( + # event="step two", + # distinct_id="user_1", + # team=self.team, + # timestamp=timezone.now().strftime("%Y-%m-%d %H:%M:%S.%f"), + # properties={"$session_id": "s1", "$window_id": "w1"}, + # event_uuid="21111111-1111-1111-1111-111111111111", + # ) + # _create_event( + # event="step one", + # distinct_id="user_1", + # team=self.team, + # timestamp=(timezone.now() + timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S.%f"), + # properties={"$session_id": "s1", "$window_id": "w1"}, + # event_uuid="11111111-1111-1111-1111-111111111111", + # ) + + # timestamp = timezone.now() + timedelta(days=1) + # produce_replay_summary( + # team_id=self.team.pk, + # session_id="s1", + # distinct_id="user_1", + # first_timestamp=timestamp, + # last_timestamp=timestamp, + # ) + + # filters = { + # "insight": INSIGHT_FUNNELS, + # "funnel_order_type": "unordered", + # "date_from": "2021-01-01", + # "date_to": "2021-01-08", + # "interval": "day", + # "funnel_window_days": 7, + # "funnel_step": 1, + # "events": [ + # {"id": "step one", "order": 0}, + # {"id": "step two", "order": 1}, + # {"id": "step three", "order": 2}, + # ], + # } + # # "include_recordings": "true", # <- The important line + # results = get_actors(filters, self.team, funnelStep=1) + + # self.assertEqual(results[0]["id"], p1.uuid) + # self.assertEqual(results[0]["matched_recordings"], []) diff --git a/posthog/hogql_queries/insights/funnels/utils.py b/posthog/hogql_queries/insights/funnels/utils.py index 4112f66ef6edb..a795a26955a91 100644 --- a/posthog/hogql_queries/insights/funnels/utils.py +++ b/posthog/hogql_queries/insights/funnels/utils.py @@ -23,7 +23,7 @@ def get_funnel_order_class(funnelsFilter: FunnelsFilter): def get_funnel_actor_class(funnelsFilter: FunnelsFilter): - from posthog.hogql_queries.insights.funnels import FunnelActors, FunnelStrictActors + from posthog.hogql_queries.insights.funnels import FunnelActors, FunnelStrictActors, FunnelUnorderedActors # if filter.correlation_person_entity and EE_AVAILABLE: if False: @@ -43,8 +43,7 @@ def get_funnel_actor_class(funnelsFilter: FunnelsFilter): # return FunnelTrendsActors else: if funnelsFilter.funnelOrderType == StepOrderValue.unordered: - return FunnelActors - # return FunnelUnorderedActors + return FunnelUnorderedActors elif funnelsFilter.funnelOrderType == StepOrderValue.strict: return FunnelStrictActors else: From bb93be52179227ba30cfddfc49a4593162f5207f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Obermu=CC=88ller?= Date: Thu, 22 Feb 2024 12:55:07 +0100 Subject: [PATCH 05/12] add trends actors --- frontend/src/queries/schema.json | 6 + frontend/src/queries/schema.ts | 2 + .../insights/funnels/__init__.py | 1 + .../insights/funnels/funnel_trends.py | 17 +- .../insights/funnels/funnel_trends_persons.py | 87 ++++++ .../test_funnel_trends_persons.ambr | 277 ++++++++++++++++++ .../funnels/test/test_funnel_persons.py | 14 +- .../test/test_funnel_trends_persons.py | 162 ++++++++++ .../hogql_queries/insights/funnels/utils.py | 10 +- posthog/schema.py | 2 + 10 files changed, 564 insertions(+), 14 deletions(-) create mode 100644 posthog/hogql_queries/insights/funnels/funnel_trends_persons.py create mode 100644 posthog/hogql_queries/insights/funnels/test/__snapshots__/test_funnel_trends_persons.ambr create mode 100644 posthog/hogql_queries/insights/funnels/test/test_funnel_trends_persons.py diff --git a/frontend/src/queries/schema.json b/frontend/src/queries/schema.json index 707e444b1b58a..3ffd302a0aea8 100644 --- a/frontend/src/queries/schema.json +++ b/frontend/src/queries/schema.json @@ -1713,6 +1713,12 @@ "$ref": "#/definitions/BreakdownKeyType", "description": "The breakdown value for which to get persons for. This is an array for person and event properties, a string for groups and an integer for cohorts." }, + "funnelTrendsDropOff": { + "type": "boolean" + }, + "funnelTrendsEntrancePeriodStart": { + "type": "string" + }, "includeRecordings": { "type": "boolean" }, diff --git a/frontend/src/queries/schema.ts b/frontend/src/queries/schema.ts index a5e9a19afe49a..882b05532d116 100644 --- a/frontend/src/queries/schema.ts +++ b/frontend/src/queries/schema.ts @@ -1088,6 +1088,8 @@ export interface FunnelsActorsQuery extends InsightActorsQueryBase { /** The breakdown value for which to get persons for. This is an array for * person and event properties, a string for groups and an integer for cohorts. */ funnelStepBreakdown?: BreakdownKeyType + funnelTrendsDropOff?: boolean + funnelTrendsEntrancePeriodStart?: string } export type BreakdownValueInt = integer diff --git a/posthog/hogql_queries/insights/funnels/__init__.py b/posthog/hogql_queries/insights/funnels/__init__.py index ba30e81b82e01..8a20d9784df8b 100644 --- a/posthog/hogql_queries/insights/funnels/__init__.py +++ b/posthog/hogql_queries/insights/funnels/__init__.py @@ -7,3 +7,4 @@ from .funnel_persons import FunnelActors from .funnel_strict_persons import FunnelStrictActors from .funnel_unordered_persons import FunnelUnorderedActors +from .funnel_trends_persons import FunnelTrendsActors diff --git a/posthog/hogql_queries/insights/funnels/funnel_trends.py b/posthog/hogql_queries/insights/funnels/funnel_trends.py index 834c9e1e23f20..fc07841a6de4e 100644 --- a/posthog/hogql_queries/insights/funnels/funnel_trends.py +++ b/posthog/hogql_queries/insights/funnels/funnel_trends.py @@ -272,10 +272,6 @@ def get_step_counts_without_aggregation_query( steps_per_person_query = self.funnel_order.get_step_counts_without_aggregation_query() - # # This is used by funnel trends when we only need data for one period, e.g. person per data point - # if specific_entrance_period_start: - # self.params["entrance_period_start"] = specific_entrance_period_start.strftime(TIMESTAMP_FORMAT) - # event_select_clause = "" # if self._filter.include_recordings: # max_steps = len(self._filter.entities) @@ -291,14 +287,23 @@ def get_step_counts_without_aggregation_query( *breakdown_clause, ] select_from = ast.JoinExpr(table=steps_per_person_query) - # {"WHERE toDateTime(entrance_period_start) = %(entrance_period_start)s" if specific_entrance_period_start else ""} + # This is used by funnel trends when we only need data for one period, e.g. person per data point + where = ( + ast.CompareOperation( + op=ast.CompareOperationOp.Eq, + left=parse_expr("entrance_period_start"), + right=ast.Constant(value=specific_entrance_period_start), + ) + if specific_entrance_period_start + else None + ) group_by: List[ast.Expr] = [ ast.Field(chain=["aggregation_target"]), ast.Field(chain=["entrance_period_start"]), *breakdown_clause, ] - return ast.SelectQuery(select=select, select_from=select_from, group_by=group_by) + return ast.SelectQuery(select=select, select_from=select_from, where=where, group_by=group_by) def get_steps_reached_conditions(self) -> Tuple[str, str, str]: funnelsFilter, max_steps = self.context.funnelsFilter, self.context.max_steps diff --git a/posthog/hogql_queries/insights/funnels/funnel_trends_persons.py b/posthog/hogql_queries/insights/funnels/funnel_trends_persons.py new file mode 100644 index 0000000000000..571362e222957 --- /dev/null +++ b/posthog/hogql_queries/insights/funnels/funnel_trends_persons.py @@ -0,0 +1,87 @@ +from datetime import datetime +from typing import List + +from rest_framework.exceptions import ValidationError + +from posthog.hogql import ast +from posthog.hogql.parser import parse_expr +from posthog.hogql_queries.insights.funnels.funnel_query_context import FunnelQueryContext +from posthog.hogql_queries.insights.funnels.funnel_trends import FunnelTrends +from posthog.utils import relative_date_parse + + +class FunnelTrendsActors(FunnelTrends): + entrancePeriodStart: datetime + dropOff: bool + + def __init__(self, context: FunnelQueryContext, just_summarize=False): + super().__init__(context, just_summarize) + + team, actorsQuery = self.context.team, self.context.actorsQuery + + if actorsQuery is None: + raise ValidationError("No actors query present.") + + if actorsQuery.funnelTrendsDropOff is None: + raise ValidationError(f"Actors parameter `funnelTrendsDropOff` must be provided for funnel trends persons!") + + if actorsQuery.funnelTrendsEntrancePeriodStart is None: + raise ValidationError( + f"Actors parameter `funnelTrendsEntrancePeriodStart` must be provided funnel trends persons!" + ) + + entrancePeriodStart = relative_date_parse(actorsQuery.funnelTrendsEntrancePeriodStart, team.timezone_info) + if entrancePeriodStart is None: + raise ValidationError( + f"Actors parameter `funnelTrendsEntrancePeriodStart` must be a valid relative date string!" + ) + + self.dropOff = actorsQuery.funnelTrendsDropOff + self.entrancePeriodStart = entrancePeriodStart + + def _get_funnel_person_step_events(self) -> List[ast.Expr]: + # if self._filter.include_recordings: + # # Get the event that should be used to match the recording + # funnel_to_step = self._filter.funnel_to_step + # is_drop_off = self._filter.drop_off + + # if funnel_to_step is None or is_drop_off: + # # If there is no funnel_to_step or if we are looking for drop off, we need to get the users final event + # return ", final_matching_events as matching_events" + # else: + # # Otherwise, we return the event of the funnel_to_step + # self.params.update({"matching_events_step_num": funnel_to_step}) + # return ", step_%(matching_events_step_num)s_matching_events as matching_events" + return [] + + def actor_query(self) -> ast.SelectQuery: + step_counts_query = self.get_step_counts_without_aggregation_query( + specific_entrance_period_start=self.entrancePeriodStart + ) + + # Expects multiple rows for same person, first event time, steps taken. + ( + _, + reached_to_step_count_condition, + did_not_reach_to_step_count_condition, + ) = self.get_steps_reached_conditions() + + select: List[ast.Expr] = [ + ast.Alias(alias="actor_id", expr=ast.Field(chain=["aggregation_target"])), + *self._get_funnel_person_step_events(), + ] + select_from = ast.JoinExpr(table=step_counts_query) + where = ( + parse_expr(did_not_reach_to_step_count_condition) + if self.dropOff + else parse_expr(reached_to_step_count_condition) + ) + order_by = [ast.OrderExpr(expr=ast.Field(chain=["aggregation_target"]))] + + return ast.SelectQuery( + select=select, + select_from=select_from, + order_by=order_by, + where=where, + # SETTINGS max_ast_elements=1000000, max_expanded_ast_elements=1000000 + ) diff --git a/posthog/hogql_queries/insights/funnels/test/__snapshots__/test_funnel_trends_persons.ambr b/posthog/hogql_queries/insights/funnels/test/__snapshots__/test_funnel_trends_persons.ambr new file mode 100644 index 0000000000000..5c0eb5ea141c7 --- /dev/null +++ b/posthog/hogql_queries/insights/funnels/test/__snapshots__/test_funnel_trends_persons.ambr @@ -0,0 +1,277 @@ +# serializer version: 1 +# name: TestFunnelTrendsPersons.test_funnel_trend_persons_returns_recordings + ''' + SELECT persons.id, + persons.id AS id, + toTimeZone(persons.created_at, 'UTC') AS created_at, + 1 + FROM + (SELECT argMax(person.created_at, person.version) AS created_at, + person.id AS id + FROM person + WHERE equals(person.team_id, 2) + GROUP BY person.id + HAVING ifNull(equals(argMax(person.is_deleted, person.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS persons + INNER JOIN + (SELECT aggregation_target AS actor_id + FROM + (SELECT aggregation_target AS aggregation_target, + toStartOfDay(timestamp) AS entrance_period_start, + max(steps) AS steps_completed + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + latest_2 AS latest_2, + if(and(ifNull(lessOrEquals(latest_0, latest_1), 0), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0), ifNull(lessOrEquals(latest_1, latest_2), 0), ifNull(lessOrEquals(latest_2, plus(latest_0, toIntervalDay(14))), 0)), 3, if(and(ifNull(lessOrEquals(latest_0, latest_1), 0), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0)), 2, 1)) AS steps, + if(and(isNotNull(latest_1), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0)), dateDiff('second', latest_0, latest_1), NULL) AS step_1_conversion_time, + if(and(isNotNull(latest_2), ifNull(lessOrEquals(latest_2, plus(latest_1, toIntervalDay(14))), 0)), dateDiff('second', latest_1, latest_2), NULL) AS step_2_conversion_time + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + min(latest_2) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_2 + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + if(ifNull(less(latest_2, latest_1), 0), NULL, latest_2) AS latest_2 + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + min(latest_1) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_1, + step_2 AS step_2, + min(latest_2) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_2 + FROM + (SELECT toTimeZone(e.timestamp, 'UTC') AS timestamp, + e__pdi.person_id AS aggregation_target, + if(equals(e.event, 'step one'), 1, 0) AS step_0, + if(ifNull(equals(step_0, 1), 0), timestamp, NULL) AS latest_0, + if(equals(e.event, 'step two'), 1, 0) AS step_1, + if(ifNull(equals(step_1, 1), 0), timestamp, NULL) AS latest_1, + if(equals(e.event, 'step three'), 1, 0) AS step_2, + if(ifNull(equals(step_2, 1), 0), timestamp, NULL) AS latest_2 + FROM events AS e + INNER JOIN + (SELECT argMax(person_distinct_id2.person_id, person_distinct_id2.version) AS person_id, + person_distinct_id2.distinct_id AS distinct_id + FROM person_distinct_id2 + WHERE equals(person_distinct_id2.team_id, 2) + GROUP BY person_distinct_id2.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id2.is_deleted, person_distinct_id2.version), 0), 0)) AS e__pdi ON equals(e.distinct_id, e__pdi.distinct_id) + WHERE and(equals(e.team_id, 2), and(and(greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toDateTime64('2021-05-01 00:00:00.000000', 6, 'UTC')), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), toDateTime64('2021-05-07 23:59:59.999999', 6, 'UTC'))), in(e.event, tuple('step one', 'step three', 'step two'))), or(ifNull(equals(step_0, 1), 0), ifNull(equals(step_1, 1), 0), ifNull(equals(step_2, 1), 0))))))) + WHERE ifNull(equals(step_0, 1), 0)) + WHERE ifNull(equals(entrance_period_start, toDateTime64('2021-05-01 00:00:00.000000', 6, 'UTC')), 0) + GROUP BY aggregation_target, + entrance_period_start) + WHERE ifNull(greaterOrEquals(steps_completed, 2), 0) + ORDER BY aggregation_target ASC) AS source ON equals(persons.id, source.actor_id) + ORDER BY toTimeZone(persons.created_at, 'UTC') DESC + LIMIT 101 + OFFSET 0 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1 + ''' +# --- +# name: TestFunnelTrendsPersons.test_funnel_trend_persons_with_drop_off + ''' + SELECT persons.id, + persons.id AS id, + toTimeZone(persons.created_at, 'UTC') AS created_at, + 1 + FROM + (SELECT argMax(person.created_at, person.version) AS created_at, + person.id AS id + FROM person + WHERE equals(person.team_id, 2) + GROUP BY person.id + HAVING ifNull(equals(argMax(person.is_deleted, person.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS persons + INNER JOIN + (SELECT aggregation_target AS actor_id + FROM + (SELECT aggregation_target AS aggregation_target, + toStartOfDay(timestamp) AS entrance_period_start, + max(steps) AS steps_completed + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + latest_2 AS latest_2, + if(and(ifNull(lessOrEquals(latest_0, latest_1), 0), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0), ifNull(lessOrEquals(latest_1, latest_2), 0), ifNull(lessOrEquals(latest_2, plus(latest_0, toIntervalDay(14))), 0)), 3, if(and(ifNull(lessOrEquals(latest_0, latest_1), 0), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0)), 2, 1)) AS steps, + if(and(isNotNull(latest_1), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0)), dateDiff('second', latest_0, latest_1), NULL) AS step_1_conversion_time, + if(and(isNotNull(latest_2), ifNull(lessOrEquals(latest_2, plus(latest_1, toIntervalDay(14))), 0)), dateDiff('second', latest_1, latest_2), NULL) AS step_2_conversion_time + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + min(latest_2) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_2 + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + if(ifNull(less(latest_2, latest_1), 0), NULL, latest_2) AS latest_2 + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + min(latest_1) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_1, + step_2 AS step_2, + min(latest_2) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_2 + FROM + (SELECT toTimeZone(e.timestamp, 'UTC') AS timestamp, + e__pdi.person_id AS aggregation_target, + if(equals(e.event, 'step one'), 1, 0) AS step_0, + if(ifNull(equals(step_0, 1), 0), timestamp, NULL) AS latest_0, + if(equals(e.event, 'step two'), 1, 0) AS step_1, + if(ifNull(equals(step_1, 1), 0), timestamp, NULL) AS latest_1, + if(equals(e.event, 'step three'), 1, 0) AS step_2, + if(ifNull(equals(step_2, 1), 0), timestamp, NULL) AS latest_2 + FROM events AS e + INNER JOIN + (SELECT argMax(person_distinct_id2.person_id, person_distinct_id2.version) AS person_id, + person_distinct_id2.distinct_id AS distinct_id + FROM person_distinct_id2 + WHERE equals(person_distinct_id2.team_id, 2) + GROUP BY person_distinct_id2.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id2.is_deleted, person_distinct_id2.version), 0), 0)) AS e__pdi ON equals(e.distinct_id, e__pdi.distinct_id) + WHERE and(equals(e.team_id, 2), and(and(greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toDateTime64('2021-05-01 00:00:00.000000', 6, 'UTC')), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), toDateTime64('2021-05-07 23:59:59.999999', 6, 'UTC'))), in(e.event, tuple('step one', 'step three', 'step two'))), or(ifNull(equals(step_0, 1), 0), ifNull(equals(step_1, 1), 0), ifNull(equals(step_2, 1), 0))))))) + WHERE ifNull(equals(step_0, 1), 0)) + WHERE ifNull(equals(entrance_period_start, toDateTime64('2021-05-01 00:00:00.000000', 6, 'UTC')), 0) + GROUP BY aggregation_target, + entrance_period_start) + WHERE and(ifNull(greaterOrEquals(steps_completed, 1), 0), ifNull(less(steps_completed, 3), 0)) + ORDER BY aggregation_target ASC) AS source ON equals(persons.id, source.actor_id) + ORDER BY toTimeZone(persons.created_at, 'UTC') DESC + LIMIT 101 + OFFSET 0 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1 + ''' +# --- +# name: TestFunnelTrendsPersons.test_funnel_trend_persons_with_no_to_step + ''' + SELECT persons.id, + persons.id AS id, + toTimeZone(persons.created_at, 'UTC') AS created_at, + 1 + FROM + (SELECT argMax(person.created_at, person.version) AS created_at, + person.id AS id + FROM person + WHERE equals(person.team_id, 2) + GROUP BY person.id + HAVING ifNull(equals(argMax(person.is_deleted, person.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS persons + INNER JOIN + (SELECT aggregation_target AS actor_id + FROM + (SELECT aggregation_target AS aggregation_target, + toStartOfDay(timestamp) AS entrance_period_start, + max(steps) AS steps_completed + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + latest_2 AS latest_2, + if(and(ifNull(lessOrEquals(latest_0, latest_1), 0), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0), ifNull(lessOrEquals(latest_1, latest_2), 0), ifNull(lessOrEquals(latest_2, plus(latest_0, toIntervalDay(14))), 0)), 3, if(and(ifNull(lessOrEquals(latest_0, latest_1), 0), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0)), 2, 1)) AS steps, + if(and(isNotNull(latest_1), ifNull(lessOrEquals(latest_1, plus(latest_0, toIntervalDay(14))), 0)), dateDiff('second', latest_0, latest_1), NULL) AS step_1_conversion_time, + if(and(isNotNull(latest_2), ifNull(lessOrEquals(latest_2, plus(latest_1, toIntervalDay(14))), 0)), dateDiff('second', latest_1, latest_2), NULL) AS step_2_conversion_time + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + min(latest_2) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_2 + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + latest_1 AS latest_1, + step_2 AS step_2, + if(ifNull(less(latest_2, latest_1), 0), NULL, latest_2) AS latest_2 + FROM + (SELECT aggregation_target AS aggregation_target, + timestamp AS timestamp, + step_0 AS step_0, + latest_0 AS latest_0, + step_1 AS step_1, + min(latest_1) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_1, + step_2 AS step_2, + min(latest_2) OVER (PARTITION BY aggregation_target + ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) AS latest_2 + FROM + (SELECT toTimeZone(e.timestamp, 'UTC') AS timestamp, + e__pdi.person_id AS aggregation_target, + if(equals(e.event, 'step one'), 1, 0) AS step_0, + if(ifNull(equals(step_0, 1), 0), timestamp, NULL) AS latest_0, + if(equals(e.event, 'step two'), 1, 0) AS step_1, + if(ifNull(equals(step_1, 1), 0), timestamp, NULL) AS latest_1, + if(equals(e.event, 'step three'), 1, 0) AS step_2, + if(ifNull(equals(step_2, 1), 0), timestamp, NULL) AS latest_2 + FROM events AS e + INNER JOIN + (SELECT argMax(person_distinct_id2.person_id, person_distinct_id2.version) AS person_id, + person_distinct_id2.distinct_id AS distinct_id + FROM person_distinct_id2 + WHERE equals(person_distinct_id2.team_id, 2) + GROUP BY person_distinct_id2.distinct_id + HAVING ifNull(equals(argMax(person_distinct_id2.is_deleted, person_distinct_id2.version), 0), 0)) AS e__pdi ON equals(e.distinct_id, e__pdi.distinct_id) + WHERE and(equals(e.team_id, 2), and(and(greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toDateTime64('2021-05-01 00:00:00.000000', 6, 'UTC')), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), toDateTime64('2021-05-07 23:59:59.999999', 6, 'UTC'))), in(e.event, tuple('step one', 'step three', 'step two'))), or(ifNull(equals(step_0, 1), 0), ifNull(equals(step_1, 1), 0), ifNull(equals(step_2, 1), 0))))))) + WHERE ifNull(equals(step_0, 1), 0)) + WHERE ifNull(equals(entrance_period_start, toDateTime64('2021-05-01 00:00:00.000000', 6, 'UTC')), 0) + GROUP BY aggregation_target, + entrance_period_start) + WHERE ifNull(greaterOrEquals(steps_completed, 3), 0) + ORDER BY aggregation_target ASC) AS source ON equals(persons.id, source.actor_id) + ORDER BY toTimeZone(persons.created_at, 'UTC') DESC + LIMIT 101 + OFFSET 0 SETTINGS readonly=2, + max_execution_time=60, + allow_experimental_object_type=1 + ''' +# --- diff --git a/posthog/hogql_queries/insights/funnels/test/test_funnel_persons.py b/posthog/hogql_queries/insights/funnels/test/test_funnel_persons.py index 3b28a7caf8315..19897f122b187 100644 --- a/posthog/hogql_queries/insights/funnels/test/test_funnel_persons.py +++ b/posthog/hogql_queries/insights/funnels/test/test_funnel_persons.py @@ -1,5 +1,5 @@ from datetime import datetime -from typing import Dict, List, cast, Any +from typing import Dict, List, Optional, cast, Any from posthog.constants import INSIGHT_FUNNELS @@ -28,10 +28,12 @@ def get_actors( filters: Dict[str, Any], team: Team, - funnelStep: int | None = None, - funnelCustomSteps: List[int] | None = None, - funnelStepBreakdown: str | float | List[str | float] | None = None, - offset: int | None = None, + funnelStep: Optional[int] = None, + funnelCustomSteps: Optional[List[int]] = None, + funnelStepBreakdown: Optional[str | float | List[str | float]] = None, + funnelTrendsDropOff: Optional[bool] = None, + funnelTrendsEntrancePeriodStart: Optional[str] = None, + offset: Optional[int] = None, ): funnels_query = cast(FunnelsQuery, filter_to_query(filters)) funnel_actors_query = FunnelsActorsQuery( @@ -39,6 +41,8 @@ def get_actors( funnelStep=funnelStep, funnelCustomSteps=funnelCustomSteps, funnelStepBreakdown=funnelStepBreakdown, + funnelTrendsDropOff=funnelTrendsDropOff, + funnelTrendsEntrancePeriodStart=funnelTrendsEntrancePeriodStart, ) actors_query = ActorsQuery(source=funnel_actors_query, offset=offset) response = ActorsQueryRunner(query=actors_query, team=team).calculate() diff --git a/posthog/hogql_queries/insights/funnels/test/test_funnel_trends_persons.py b/posthog/hogql_queries/insights/funnels/test/test_funnel_trends_persons.py new file mode 100644 index 0000000000000..e1f4125c9e0ae --- /dev/null +++ b/posthog/hogql_queries/insights/funnels/test/test_funnel_trends_persons.py @@ -0,0 +1,162 @@ +from datetime import datetime, timedelta + +from posthog.constants import INSIGHT_FUNNELS, FunnelVizType +from posthog.hogql_queries.insights.funnels.test.test_funnel_persons import get_actors +from posthog.session_recordings.queries.test.session_replay_sql import ( + produce_replay_summary, +) +from posthog.test.base import ( + APIBaseTest, + ClickhouseTestMixin, + snapshot_clickhouse_queries, +) +from posthog.test.test_journeys import journeys_for + +filters = { + "insight": INSIGHT_FUNNELS, + "funnel_viz_type": FunnelVizType.TRENDS, + "interval": "day", + "date_from": "2021-05-01 00:00:00", + "date_to": "2021-05-07 23:59:59", + "funnel_window_days": 14, + "funnel_from_step": 0, + "events": [ + {"id": "step one", "order": 0}, + {"id": "step two", "order": 1}, + {"id": "step three", "order": 2}, + ], +} + + +class TestFunnelTrendsPersons(ClickhouseTestMixin, APIBaseTest): + @snapshot_clickhouse_queries + def test_funnel_trend_persons_returns_recordings(self): + persons = journeys_for( + { + "user_one": [ + { + "event": "step one", + "timestamp": datetime(2021, 5, 1), + "properties": {"$session_id": "s1a"}, + }, + { + "event": "step two", + "timestamp": datetime(2021, 5, 2), + "properties": {"$session_id": "s1b"}, + }, + { + "event": "step three", + "timestamp": datetime(2021, 5, 3), + "properties": {"$session_id": "s1c"}, + }, + ] + }, + self.team, + ) + timestamp = datetime(2021, 5, 1) + produce_replay_summary( + team_id=self.team.pk, + session_id="s1b", + distinct_id="user_one", + first_timestamp=timestamp, + last_timestamp=timestamp, + ) + + # "include_recordings": "true", + results = get_actors( + {"funnel_to_step": 1, **filters}, + self.team, + funnelTrendsDropOff=False, + funnelTrendsEntrancePeriodStart="2021-05-01 00:00:00", + ) + + self.assertEqual([person[0]["id"] for person in results], [persons["user_one"].uuid]) + # self.assertEqual( + # [person["matched_recordings"][0]["session_id"] for person in results], + # ["s1b"], + # ) + + @snapshot_clickhouse_queries + def test_funnel_trend_persons_with_no_to_step(self): + persons = journeys_for( + { + "user_one": [ + { + "event": "step one", + "timestamp": datetime(2021, 5, 1), + "properties": {"$session_id": "s1a"}, + }, + { + "event": "step two", + "timestamp": datetime(2021, 5, 2), + "properties": {"$session_id": "s1b"}, + }, + { + "event": "step three", + "timestamp": datetime(2021, 5, 3), + "properties": {"$session_id": "s1c"}, + }, + ] + }, + self.team, + ) + # the session recording can start a little before the events in the funnel + timestamp = datetime(2021, 5, 1) - timedelta(hours=12) + produce_replay_summary( + team_id=self.team.pk, + session_id="s1c", + distinct_id="user_one", + first_timestamp=timestamp, + last_timestamp=timestamp, + ) + + # "include_recordings": "true", + results = get_actors( + filters, + self.team, + funnelTrendsDropOff=False, + funnelTrendsEntrancePeriodStart="2021-05-01 00:00:00", + ) + + self.assertEqual([person[0]["id"] for person in results], [persons["user_one"].uuid]) + # self.assertEqual( + # [person["matched_recordings"][0]["session_id"] for person in results], + # ["s1c"], + # ) + + @snapshot_clickhouse_queries + def test_funnel_trend_persons_with_drop_off(self): + persons = journeys_for( + { + "user_one": [ + { + "event": "step one", + "timestamp": datetime(2021, 5, 1), + "properties": {"$session_id": "s1a"}, + } + ] + }, + self.team, + ) + timestamp = datetime(2021, 5, 1) + produce_replay_summary( + team_id=self.team.pk, + session_id="s1a", + distinct_id="user_one", + first_timestamp=timestamp, + last_timestamp=timestamp, + ) + + # "include_recordings": "true", + results = get_actors( + filters, + self.team, + funnelTrendsDropOff=True, + funnelTrendsEntrancePeriodStart="2021-05-01 00:00:00", + ) + + self.assertEqual([person[0]["id"] for person in results], [persons["user_one"].uuid]) + # self.assertEqual( + # [person["matched_recordings"][0].get("session_id") for person in results], + # ["s1a"], + # ) diff --git a/posthog/hogql_queries/insights/funnels/utils.py b/posthog/hogql_queries/insights/funnels/utils.py index a795a26955a91..0fdd95df735a9 100644 --- a/posthog/hogql_queries/insights/funnels/utils.py +++ b/posthog/hogql_queries/insights/funnels/utils.py @@ -23,7 +23,12 @@ def get_funnel_order_class(funnelsFilter: FunnelsFilter): def get_funnel_actor_class(funnelsFilter: FunnelsFilter): - from posthog.hogql_queries.insights.funnels import FunnelActors, FunnelStrictActors, FunnelUnorderedActors + from posthog.hogql_queries.insights.funnels import ( + FunnelActors, + FunnelStrictActors, + FunnelUnorderedActors, + FunnelTrendsActors, + ) # if filter.correlation_person_entity and EE_AVAILABLE: if False: @@ -39,8 +44,7 @@ def get_funnel_actor_class(funnelsFilter: FunnelsFilter): "Funnel Correlations is not available without an enterprise license and enterprise supported deployment" ) elif funnelsFilter.funnelVizType == FunnelVizType.trends: - return FunnelActors - # return FunnelTrendsActors + return FunnelTrendsActors else: if funnelsFilter.funnelOrderType == StepOrderValue.unordered: return FunnelUnorderedActors diff --git a/posthog/schema.py b/posthog/schema.py index 4704f1077f010..6050e35d278db 100644 --- a/posthog/schema.py +++ b/posthog/schema.py @@ -2554,6 +2554,8 @@ class FunnelsActorsQuery(BaseModel): default=None, description="The breakdown value for which to get persons for. This is an array for person and event properties, a string for groups and an integer for cohorts.", ) + funnelTrendsDropOff: Optional[bool] = None + funnelTrendsEntrancePeriodStart: Optional[str] = None includeRecordings: Optional[bool] = None kind: Literal["InsightActorsQuery"] = "InsightActorsQuery" response: Optional[ActorsQueryResponse] = None From 8c8cce9a20814b595ae41baee34fc06e7e4c1685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Obermu=CC=88ller?= Date: Thu, 22 Feb 2024 13:07:34 +0100 Subject: [PATCH 06/12] fix types --- .../insights/funnels/funnel_unordered_persons.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posthog/hogql_queries/insights/funnels/funnel_unordered_persons.py b/posthog/hogql_queries/insights/funnels/funnel_unordered_persons.py index af8ebf90901b8..08e4b210b4f67 100644 --- a/posthog/hogql_queries/insights/funnels/funnel_unordered_persons.py +++ b/posthog/hogql_queries/insights/funnels/funnel_unordered_persons.py @@ -10,8 +10,8 @@ def _get_funnel_person_step_events(self) -> List[ast.Expr]: # Unordered funnels does not support matching events (and thereby recordings), # but it simplifies the logic if we return an empty array for matching events # if self._filter.include_recordings: - if False: # typing: ignore TODO: implement with recordings - return [parse_expr("array() as matching_events")] + if False: + return [parse_expr("array() as matching_events")] # type: ignore return [] def actor_query( From 8059d26a9e02aa8a7ee5df4410114a0c76d387f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Obermu=CC=88ller?= Date: Thu, 22 Feb 2024 13:43:49 +0100 Subject: [PATCH 07/12] implement trends actors frontend side --- frontend/src/queries/schema.json | 3 +- frontend/src/queries/schema.ts | 3 +- .../src/scenes/funnels/FunnelLineGraph.tsx | 47 +++++++++++++------ .../src/scenes/funnels/funnelDataLogic.ts | 11 ++++- .../scenes/funnels/funnelPersonsModalLogic.ts | 12 +---- posthog/schema.py | 8 +++- 6 files changed, 54 insertions(+), 30 deletions(-) diff --git a/frontend/src/queries/schema.json b/frontend/src/queries/schema.json index 3ffd302a0aea8..d8a23cae2f1b6 100644 --- a/frontend/src/queries/schema.json +++ b/frontend/src/queries/schema.json @@ -1699,7 +1699,7 @@ "additionalProperties": false, "properties": { "funnelCustomSteps": { - "description": "Custom step numbers to get persons for. This overrides `funnelStep`.", + "description": "Custom step numbers to get persons for. This overrides `funnelStep`. Primarily for correlation use.", "items": { "type": "integer" }, @@ -1717,6 +1717,7 @@ "type": "boolean" }, "funnelTrendsEntrancePeriodStart": { + "description": "Used together with `funnelTrendsDropOff` for funnels time conversion date for the persons modal.", "type": "string" }, "includeRecordings": { diff --git a/frontend/src/queries/schema.ts b/frontend/src/queries/schema.ts index 882b05532d116..52f0393f6ec74 100644 --- a/frontend/src/queries/schema.ts +++ b/frontend/src/queries/schema.ts @@ -1083,12 +1083,13 @@ export interface FunnelsActorsQuery extends InsightActorsQueryBase { /** Index of the step for which we want to get the timestamp for, per person. * Positive for converted persons, negative for dropped of persons. */ funnelStep?: integer - /** Custom step numbers to get persons for. This overrides `funnelStep`. */ + /** Custom step numbers to get persons for. This overrides `funnelStep`. Primarily for correlation use. */ funnelCustomSteps?: integer[] /** The breakdown value for which to get persons for. This is an array for * person and event properties, a string for groups and an integer for cohorts. */ funnelStepBreakdown?: BreakdownKeyType funnelTrendsDropOff?: boolean + /** Used together with `funnelTrendsDropOff` for funnels time conversion date for the persons modal. */ funnelTrendsEntrancePeriodStart?: string } diff --git a/frontend/src/scenes/funnels/FunnelLineGraph.tsx b/frontend/src/scenes/funnels/FunnelLineGraph.tsx index 9efaa3e6741a5..ee879703a2b67 100644 --- a/frontend/src/scenes/funnels/FunnelLineGraph.tsx +++ b/frontend/src/scenes/funnels/FunnelLineGraph.tsx @@ -8,7 +8,7 @@ import { buildPeopleUrl } from 'scenes/trends/persons-modal/persons-modal-utils' import { openPersonsModal } from 'scenes/trends/persons-modal/PersonsModal' import { queryNodeToFilter } from '~/queries/nodes/InsightQuery/utils/queryNodeToFilter' -import { TrendsFilter } from '~/queries/schema' +import { FunnelsActorsQuery, NodeKind, TrendsFilter } from '~/queries/schema' import { isInsightQueryNode } from '~/queries/utils' import { ChartParams, GraphDataset, GraphType } from '~/types' @@ -28,8 +28,15 @@ export function FunnelLineGraph({ showPersonsModal = true, }: Omit): JSX.Element | null { const { insightProps } = useValues(insightLogic) - const { indexedSteps, aggregationTargetLabel, incompletenessOffsetFromEnd, interval, querySource, insightData } = - useValues(funnelDataLogic(insightProps)) + const { + hogQLInsightsFunnelsFlagEnabled, + indexedSteps, + aggregationTargetLabel, + incompletenessOffsetFromEnd, + interval, + querySource, + insightData, + } = useValues(funnelDataLogic(insightProps)) if (!isInsightQueryNode(querySource)) { return null @@ -78,19 +85,31 @@ export function FunnelLineGraph({ const day = dataset?.days?.[index] ?? '' const label = dataset?.label ?? dataset?.labels?.[index] ?? '' - const filters = queryNodeToFilter(querySource) // for persons modal - const personsUrl = buildPeopleUrl({ - filters, - date_from: day ?? '', - response: insightData, - }) - if (personsUrl) { + const title = `${capitalizeFirstLetter( + aggregationTargetLabel.plural + )} converted on ${dayjs(label).format('MMMM Do YYYY')}` + + if (hogQLInsightsFunnelsFlagEnabled) { + const query: FunnelsActorsQuery = { + kind: NodeKind.InsightActorsQuery, + source: querySource, + funnelTrendsDropOff: false, + funnelTrendsEntrancePeriodStart: dayjs(day).format('YYYY-MM-DD HH:mm:ss'), + } openPersonsModal({ - url: personsUrl, - title: `${capitalizeFirstLetter( - aggregationTargetLabel.plural - )} converted on ${dayjs(label).format('MMMM Do YYYY')}`, + title, + query, + }) + } else { + const filters = queryNodeToFilter(querySource) // for persons modal + const personsUrl = buildPeopleUrl({ + filters, + date_from: day ?? '', + response: insightData, }) + if (personsUrl) { + openPersonsModal({ title, url: personsUrl }) + } } } } diff --git a/frontend/src/scenes/funnels/funnelDataLogic.ts b/frontend/src/scenes/funnels/funnelDataLogic.ts index 52dc7e90e74e6..5a1e708eb6b59 100644 --- a/frontend/src/scenes/funnels/funnelDataLogic.ts +++ b/frontend/src/scenes/funnels/funnelDataLogic.ts @@ -1,6 +1,7 @@ import { actions, connect, kea, key, path, props, reducers, selectors } from 'kea' -import { BIN_COUNT_AUTO } from 'lib/constants' +import { BIN_COUNT_AUTO, FEATURE_FLAGS } from 'lib/constants' import { dayjs } from 'lib/dayjs' +import { featureFlagLogic } from 'lib/logic/featureFlagLogic' import { average, percentage, sum } from 'lib/utils' import { insightVizDataLogic } from 'scenes/insights/insightVizDataLogic' import { keyForInsightLogicProps } from 'scenes/insights/sharedUtils' @@ -61,6 +62,8 @@ export const funnelDataLogic = kea([ ], groupsModel, ['aggregationLabel'], + featureFlagLogic, + ['featureFlags'], ], actions: [insightVizDataLogic(props), ['updateInsightFilter', 'updateQuerySource']], })), @@ -79,6 +82,12 @@ export const funnelDataLogic = kea([ }), selectors(() => ({ + hogQLInsightsFunnelsFlagEnabled: [ + (s) => [s.featureFlags], + (featureFlags): boolean => { + return !!featureFlags[FEATURE_FLAGS.HOGQL_INSIGHTS_FUNNELS] + }, + ], querySource: [ (s) => [s.vizQuerySource], (vizQuerySource) => (isFunnelsQuery(vizQuerySource) ? vizQuerySource : null), diff --git a/frontend/src/scenes/funnels/funnelPersonsModalLogic.ts b/frontend/src/scenes/funnels/funnelPersonsModalLogic.ts index 8f83fe3b62b68..909ace73eb886 100644 --- a/frontend/src/scenes/funnels/funnelPersonsModalLogic.ts +++ b/frontend/src/scenes/funnels/funnelPersonsModalLogic.ts @@ -1,6 +1,4 @@ import { actions, connect, kea, key, listeners, path, props, selectors } from 'kea' -import { FEATURE_FLAGS } from 'lib/constants' -import { featureFlagLogic } from 'lib/logic/featureFlagLogic' import { insightLogic } from 'scenes/insights/insightLogic' import { keyForInsightLogicProps } from 'scenes/insights/sharedUtils' import { funnelTitle } from 'scenes/trends/persons-modal/persons-modal-utils' @@ -36,9 +34,7 @@ export const funnelPersonsModalLogic = kea([ insightLogic(props), ['isInDashboardContext', 'isInExperimentContext'], funnelDataLogic(props), - ['steps', 'querySource', 'funnelsFilter'], - featureFlagLogic, - ['featureFlags'], + ['hogQLInsightsFunnelsFlagEnabled', 'steps', 'querySource', 'funnelsFilter'], ], })), @@ -82,12 +78,6 @@ export const funnelPersonsModalLogic = kea([ return !isInDashboardContext && !funnelsFilter?.funnelAggregateByHogQL }, ], - hogQLInsightsFunnelsFlagEnabled: [ - (s) => [s.featureFlags], - (featureFlags): boolean => { - return !!featureFlags[FEATURE_FLAGS.HOGQL_INSIGHTS_FUNNELS] - }, - ], }), listeners(({ values }) => ({ diff --git a/posthog/schema.py b/posthog/schema.py index 6050e35d278db..d9774ce049f71 100644 --- a/posthog/schema.py +++ b/posthog/schema.py @@ -2544,7 +2544,8 @@ class FunnelsActorsQuery(BaseModel): extra="forbid", ) funnelCustomSteps: Optional[List[int]] = Field( - default=None, description="Custom step numbers to get persons for. This overrides `funnelStep`." + default=None, + description="Custom step numbers to get persons for. This overrides `funnelStep`. Primarily for correlation use.", ) funnelStep: Optional[int] = Field( default=None, @@ -2555,7 +2556,10 @@ class FunnelsActorsQuery(BaseModel): description="The breakdown value for which to get persons for. This is an array for person and event properties, a string for groups and an integer for cohorts.", ) funnelTrendsDropOff: Optional[bool] = None - funnelTrendsEntrancePeriodStart: Optional[str] = None + funnelTrendsEntrancePeriodStart: Optional[str] = Field( + default=None, + description="Used together with `funnelTrendsDropOff` for funnels time conversion date for the persons modal.", + ) includeRecordings: Optional[bool] = None kind: Literal["InsightActorsQuery"] = "InsightActorsQuery" response: Optional[ActorsQueryResponse] = None From a79a0ba02930445b36d43b943c90b27930934fe4 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:19:50 +0000 Subject: [PATCH 08/12] Update query snapshots --- .../test_clickhouse_experiment_secondary_results.ambr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr index 0c4a9b11a9541..fe8b5cbf3942d 100644 --- a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr +++ b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr @@ -1,7 +1,7 @@ # serializer version: 1 # name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results ''' - /* user_id:126 celery:posthog.tasks.tasks.sync_insight_caching_state */ + /* user_id:123 celery:posthog.tasks.tasks.sync_insight_caching_state */ SELECT team_id, date_diff('second', max(timestamp), now()) AS age FROM events From aa38c0a7121bfae8eebf580323e19b48b8ff168a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:33:05 +0000 Subject: [PATCH 09/12] Update query snapshots --- .../test_lifecycle_query_runner.ambr | 2 +- .../trends/test/__snapshots__/test_trends.ambr | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/posthog/hogql_queries/insights/test/__snapshots__/test_lifecycle_query_runner.ambr b/posthog/hogql_queries/insights/test/__snapshots__/test_lifecycle_query_runner.ambr index 2159fb2c49d5b..bbca1ba255e1b 100644 --- a/posthog/hogql_queries/insights/test/__snapshots__/test_lifecycle_query_runner.ambr +++ b/posthog/hogql_queries/insights/test/__snapshots__/test_lifecycle_query_runner.ambr @@ -79,7 +79,7 @@ WHERE and(equals(events.team_id, 2), greaterOrEquals(toTimeZone(events.timestamp, 'UTC'), minus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-12 00:00:00', 6, 'UTC'))), toIntervalDay(1))), less(toTimeZone(events.timestamp, 'UTC'), plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-19 23:59:59', 6, 'UTC'))), toIntervalDay(1))), ifNull(in(person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 7)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 6)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0), equals(events.event, '$pageview')) GROUP BY person_id) diff --git a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr index cbdf3193c600e..a7b7590efc6e0 100644 --- a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr +++ b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr @@ -85,7 +85,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-01 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-07 23:59:59', 6, 'UTC'))), ifNull(equals(e__pdi__person.`properties___$bool_prop`, 'x'), 0), and(equals(e.event, 'sign up'), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 8)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 7)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))) GROUP BY day_start) @@ -172,7 +172,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-01 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-07 23:59:59', 6, 'UTC'))), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.person_properties, '$bool_prop'), ''), 'null'), '^"|"$', ''), 'x'), 0), and(equals(e.event, 'sign up'), ifNull(in(ifNull(nullIf(e__override.override_person_id, '00000000-0000-0000-0000-000000000000'), e.person_id), (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 9)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 8)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))) GROUP BY day_start) @@ -688,7 +688,7 @@ WHERE and(equals(e.team_id, 2), and(equals(e.event, '$pageview'), and(or(ifNull(equals(e__pdi__person.properties___name, 'p1'), 0), ifNull(equals(e__pdi__person.properties___name, 'p2'), 0), ifNull(equals(e__pdi__person.properties___name, 'p3'), 0)), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 28)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 27)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0)))) GROUP BY value @@ -757,7 +757,7 @@ WHERE and(equals(e.team_id, 2), and(and(equals(e.event, '$pageview'), and(or(ifNull(equals(e__pdi__person.properties___name, 'p1'), 0), ifNull(equals(e__pdi__person.properties___name, 'p2'), 0), ifNull(equals(e__pdi__person.properties___name, 'p3'), 0)), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 28)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 27)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))), or(ifNull(equals(transform(ifNull(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, 'key'), ''), 'null'), '^"|"$', ''), '$$_posthog_breakdown_null_$$'), ['$$_posthog_breakdown_other_$$', 'val'], ['$$_posthog_breakdown_other_$$', 'val'], '$$_posthog_breakdown_other_$$'), '$$_posthog_breakdown_other_$$'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, 'key'), ''), 'null'), '^"|"$', ''), 'val'), 0))), ifNull(greaterOrEquals(timestamp, minus(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-01 00:00:00', 6, 'UTC')), toIntervalDay(7))), 0), ifNull(lessOrEquals(timestamp, assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-12 23:59:59', 6, 'UTC'))), 0)) GROUP BY timestamp, actor_id, @@ -1592,7 +1592,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), and(equals(e.event, 'sign up'), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 41)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 40)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))) GROUP BY value @@ -1640,7 +1640,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), and(equals(e.event, 'sign up'), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 41)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 40)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0)), or(ifNull(equals(transform(ifNull(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), '$$_posthog_breakdown_null_$$'), ['$$_posthog_breakdown_other_$$', 'value', 'other_value'], ['$$_posthog_breakdown_other_$$', 'value', 'other_value'], '$$_posthog_breakdown_other_$$'), '$$_posthog_breakdown_other_$$'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), 'value'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), 'other_value'), 0))) GROUP BY day_start, @@ -1691,7 +1691,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), and(equals(e.event, 'sign up'), ifNull(in(ifNull(nullIf(e__override.override_person_id, '00000000-0000-0000-0000-000000000000'), e.person_id), (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 42)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 41)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))) GROUP BY value @@ -1738,7 +1738,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), and(equals(e.event, 'sign up'), ifNull(in(ifNull(nullIf(e__override.override_person_id, '00000000-0000-0000-0000-000000000000'), e.person_id), (SELECT cohortpeople.person_id AS person_id FROM cohortpeople - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 42)) + WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 41)) GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0)), or(ifNull(equals(transform(ifNull(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), '$$_posthog_breakdown_null_$$'), ['$$_posthog_breakdown_other_$$', 'value', 'other_value'], ['$$_posthog_breakdown_other_$$', 'value', 'other_value'], '$$_posthog_breakdown_other_$$'), '$$_posthog_breakdown_other_$$'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), 'value'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), 'other_value'), 0))) GROUP BY day_start, From 56a331dc14c38cab178b4eda9558a6bff14766b8 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 08:33:03 +0000 Subject: [PATCH 10/12] Update query snapshots --- .../test_lifecycle_query_runner.ambr | 4 --- .../test/__snapshots__/test_trends.ambr | 32 ------------------- 2 files changed, 36 deletions(-) diff --git a/posthog/hogql_queries/insights/test/__snapshots__/test_lifecycle_query_runner.ambr b/posthog/hogql_queries/insights/test/__snapshots__/test_lifecycle_query_runner.ambr index 743657cdd0a49..bbca1ba255e1b 100644 --- a/posthog/hogql_queries/insights/test/__snapshots__/test_lifecycle_query_runner.ambr +++ b/posthog/hogql_queries/insights/test/__snapshots__/test_lifecycle_query_runner.ambr @@ -79,11 +79,7 @@ WHERE and(equals(events.team_id, 2), greaterOrEquals(toTimeZone(events.timestamp, 'UTC'), minus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-12 00:00:00', 6, 'UTC'))), toIntervalDay(1))), less(toTimeZone(events.timestamp, 'UTC'), plus(toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-19 23:59:59', 6, 'UTC'))), toIntervalDay(1))), ifNull(in(person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 6)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 8)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0), equals(events.event, '$pageview')) GROUP BY person_id) diff --git a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr index d1d109d4bffc4..a7b7590efc6e0 100644 --- a/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr +++ b/posthog/hogql_queries/insights/trends/test/__snapshots__/test_trends.ambr @@ -85,11 +85,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-01 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-07 23:59:59', 6, 'UTC'))), ifNull(equals(e__pdi__person.`properties___$bool_prop`, 'x'), 0), and(equals(e.event, 'sign up'), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 7)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 9)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))) GROUP BY day_start) @@ -176,11 +172,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-01 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-07 23:59:59', 6, 'UTC'))), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.person_properties, '$bool_prop'), ''), 'null'), '^"|"$', ''), 'x'), 0), and(equals(e.event, 'sign up'), ifNull(in(ifNull(nullIf(e__override.override_person_id, '00000000-0000-0000-0000-000000000000'), e.person_id), (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 8)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 10)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))) GROUP BY day_start) @@ -696,11 +688,7 @@ WHERE and(equals(e.team_id, 2), and(equals(e.event, '$pageview'), and(or(ifNull(equals(e__pdi__person.properties___name, 'p1'), 0), ifNull(equals(e__pdi__person.properties___name, 'p2'), 0), ifNull(equals(e__pdi__person.properties___name, 'p3'), 0)), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 27)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 29)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0)))) GROUP BY value @@ -769,11 +757,7 @@ WHERE and(equals(e.team_id, 2), and(and(equals(e.event, '$pageview'), and(or(ifNull(equals(e__pdi__person.properties___name, 'p1'), 0), ifNull(equals(e__pdi__person.properties___name, 'p2'), 0), ifNull(equals(e__pdi__person.properties___name, 'p3'), 0)), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 27)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 29)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))), or(ifNull(equals(transform(ifNull(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, 'key'), ''), 'null'), '^"|"$', ''), '$$_posthog_breakdown_null_$$'), ['$$_posthog_breakdown_other_$$', 'val'], ['$$_posthog_breakdown_other_$$', 'val'], '$$_posthog_breakdown_other_$$'), '$$_posthog_breakdown_other_$$'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, 'key'), ''), 'null'), '^"|"$', ''), 'val'), 0))), ifNull(greaterOrEquals(timestamp, minus(assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-01 00:00:00', 6, 'UTC')), toIntervalDay(7))), 0), ifNull(lessOrEquals(timestamp, assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-12 23:59:59', 6, 'UTC'))), 0)) GROUP BY timestamp, actor_id, @@ -1608,11 +1592,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), and(equals(e.event, 'sign up'), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 40)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 42)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))) GROUP BY value @@ -1660,11 +1640,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), and(equals(e.event, 'sign up'), ifNull(in(e__pdi.person_id, (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 40)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 42)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0)), or(ifNull(equals(transform(ifNull(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), '$$_posthog_breakdown_null_$$'), ['$$_posthog_breakdown_other_$$', 'value', 'other_value'], ['$$_posthog_breakdown_other_$$', 'value', 'other_value'], '$$_posthog_breakdown_other_$$'), '$$_posthog_breakdown_other_$$'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), 'value'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), 'other_value'), 0))) GROUP BY day_start, @@ -1715,11 +1691,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), and(equals(e.event, 'sign up'), ifNull(in(ifNull(nullIf(e__override.override_person_id, '00000000-0000-0000-0000-000000000000'), e.person_id), (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 41)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 43)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0))) GROUP BY value @@ -1766,11 +1738,7 @@ WHERE and(equals(e.team_id, 2), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfDay(assumeNotNull(parseDateTime64BestEffortOrNull('2019-12-28 00:00:00', 6, 'UTC')))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(parseDateTime64BestEffortOrNull('2020-01-04 23:59:59', 6, 'UTC'))), and(equals(e.event, 'sign up'), ifNull(in(ifNull(nullIf(e__override.override_person_id, '00000000-0000-0000-0000-000000000000'), e.person_id), (SELECT cohortpeople.person_id AS person_id FROM cohortpeople -<<<<<<< HEAD WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 41)) -======= - WHERE and(equals(cohortpeople.team_id, 2), equals(cohortpeople.cohort_id, 43)) ->>>>>>> master GROUP BY cohortpeople.person_id, cohortpeople.cohort_id, cohortpeople.version HAVING ifNull(greater(sum(cohortpeople.sign), 0), 0))), 0)), or(ifNull(equals(transform(ifNull(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), '$$_posthog_breakdown_null_$$'), ['$$_posthog_breakdown_other_$$', 'value', 'other_value'], ['$$_posthog_breakdown_other_$$', 'value', 'other_value'], '$$_posthog_breakdown_other_$$'), '$$_posthog_breakdown_other_$$'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), 'value'), 0), ifNull(equals(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(e.properties, '$some_property'), ''), 'null'), '^"|"$', ''), 'other_value'), 0))) GROUP BY day_start, From 70e6c455d6363a119c024f46170ea9e90c99e6d9 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 08:42:15 +0000 Subject: [PATCH 11/12] Update UI snapshots for `chromium` (2) --- ...d-query-execution-time-too-long--light.png | Bin 91876 -> 123075 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/scenes-app-insights-error-empty-states--estimated-query-execution-time-too-long--light.png b/frontend/__snapshots__/scenes-app-insights-error-empty-states--estimated-query-execution-time-too-long--light.png index 59b4ca4391b1e4763ed04a2da9feb2ef6662c148..a0a08be1a2b4c6c21d06d0171d9de56492b7745f 100644 GIT binary patch delta 89936 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%0A!Zjy}7e_XWj*i(s<32r_vXiI2?4r2p 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 I@9{tX55e_5{r~^~ From 5fdcceb47af9f9e2b0c2017a28e4bd7afea01ce3 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 08:52:33 +0000 Subject: [PATCH 12/12] Update UI snapshots for `chromium` (2) --- ...d-query-execution-time-too-long--light.png | Bin 123075 -> 91875 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/scenes-app-insights-error-empty-states--estimated-query-execution-time-too-long--light.png b/frontend/__snapshots__/scenes-app-insights-error-empty-states--estimated-query-execution-time-too-long--light.png index a0a08be1a2b4c6c21d06d0171d9de56492b7745f..e9efba458ed686f59da4a483f340bfccc0cf6c58 100644 GIT binary patch delta 58490 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 delta 89936 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%0A!Zjy}7e_XWj*i(s<32r_vXiI2?4r2p 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