From 9f4e941d53ab930b9f12e957edafb781579b28cf Mon Sep 17 00:00:00 2001 From: Daniel Bachhuber Date: Fri, 31 Jan 2025 17:08:32 -0800 Subject: [PATCH] fix(experiments): Allow standard trends query on data warehouse (#28166) --- .../test/test_trends_data_warehouse_query.py | 37 +++++++++++++++++++ posthog/warehouse/models/join.py | 1 + 2 files changed, 38 insertions(+) diff --git a/posthog/hogql_queries/insights/trends/test/test_trends_data_warehouse_query.py b/posthog/hogql_queries/insights/trends/test/test_trends_data_warehouse_query.py index 6f8f52af5f2e5..06853d1951800 100644 --- a/posthog/hogql_queries/insights/trends/test/test_trends_data_warehouse_query.py +++ b/posthog/hogql_queries/insights/trends/test/test_trends_data_warehouse_query.py @@ -344,6 +344,43 @@ def test_trends_breakdown_with_event_property(self): assert response.results[3][1] == [0, 0, 0, 1, 0, 0, 0] assert response.results[3][2] == "d" + def test_trends_breakdown_with_events_join_experiments_optimized(self): + table_name = self.create_parquet_file() + + DataWarehouseJoin.objects.create( + team=self.team, + source_table_name=table_name, + source_table_key="prop_1", + joining_table_name="events", + joining_table_key="distinct_id", + field_name="events", + configuration={"experiments_optimized": True, "experiments_timestamp_key": "created"}, + ) + + trends_query = TrendsQuery( + kind="TrendsQuery", + dateRange=DateRange(date_from="2023-01-01"), + series=[ + DataWarehouseNode( + id=table_name, + table_name=table_name, + id_field="id", + distinct_id_field="prop_1", + timestamp_field="created", + ) + ], + filterTestAccounts=True, + interval="day", + trendsFilter=TrendsFilter(display=ChartDisplayType.ACTIONS_LINE_GRAPH), + ) + + with freeze_time("2023-01-07"): + response = self.get_response(trends_query=trends_query) + + assert response.columns is not None + assert set(response.columns).issubset({"date", "total"}) + assert response.results[0][1] == [1, 1, 1, 1, 0, 0, 0] + @snapshot_clickhouse_queries def test_trends_breakdown_on_view(self): from posthog.warehouse.models import DataWarehouseSavedQuery diff --git a/posthog/warehouse/models/join.py b/posthog/warehouse/models/join.py index 0bfef1317c830..29419d1cb74e7 100644 --- a/posthog/warehouse/models/join.py +++ b/posthog/warehouse/models/join.py @@ -149,6 +149,7 @@ def _join_function_for_experiments( ) for name, chain in { **join_to_add.fields_accessed, + "event": ["event"], "timestamp": ["timestamp"], "distinct_id": ["distinct_id"], "properties": ["properties"],