From 31f87c360764d70c481f60824fd630dfee8d8eb0 Mon Sep 17 00:00:00 2001 From: Felix Claessen <30658763+Flix6x@users.noreply.github.com> Date: Mon, 4 Mar 2024 18:07:38 +0100 Subject: [PATCH] fix: apply event timing and belief timing filters to subquery to find the most recent event (#168) Signed-off-by: F.N. Claessen --- timely_beliefs/beliefs/classes.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/timely_beliefs/beliefs/classes.py b/timely_beliefs/beliefs/classes.py index ee2bd864..713f8106 100644 --- a/timely_beliefs/beliefs/classes.py +++ b/timely_beliefs/beliefs/classes.py @@ -520,12 +520,18 @@ def apply_belief_timing_filters(q): # Apply most recent events filter as subquery if most_recent_events_only: + subq_most_recent_events = select( + cls.source_id, + func.max(cls.event_start).label("most_recent_event_start"), + ) + subq_most_recent_events = apply_event_timing_filters( + subq_most_recent_events + ) + subq_most_recent_events = apply_belief_timing_filters( + subq_most_recent_events + ) subq_most_recent_events = ( - select( - cls.source_id, - func.max(cls.event_start).label("most_recent_event_start"), - ) - .filter(cls.sensor_id == sensor.id) + subq_most_recent_events.filter(cls.sensor_id == sensor.id) .group_by(cls.source_id) .subquery() )