Skip to content

Commit 2f2cb3f

Browse files
committed
reduce queries, get workflow id
1 parent f75d677 commit 2f2cb3f

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/sentry/incidents/endpoints/serializers/workflow_engine_data_condition.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,21 @@ def get_attrs(
3838
detector_trigger_ids = [dc.id for dc in item_list]
3939

4040
# below, we go from detector trigger to action filter
41-
detectors = Detector.objects.filter(
42-
workflow_condition_group__in=[
43-
detector_trigger.condition_group for detector_trigger in detector_triggers.values()
44-
]
45-
).values_list("id", flat=True)
46-
workflows = DetectorWorkflow.objects.filter(detector__in=detectors).values_list(
47-
"id", flat=True
41+
detector_ids = Subquery(
42+
Detector.objects.filter(
43+
workflow_condition_group__in=[
44+
detector_trigger.condition_group
45+
for detector_trigger in detector_triggers.values()
46+
]
47+
).values_list("id", flat=True)
48+
)
49+
workflow_ids = Subquery(
50+
DetectorWorkflow.objects.filter(detector__in=detector_ids).values_list(
51+
"workflow_id", flat=True
52+
)
4853
)
4954
workflow_dcgs = DataConditionGroup.objects.filter(
50-
workflowdataconditiongroup__workflow__in=workflows
55+
workflowdataconditiongroup__workflow__in=workflow_ids
5156
)
5257
action_filter_data_condition_groups = DataCondition.objects.filter(
5358
comparison__in=[item.condition_result for item in item_list],

0 commit comments

Comments
 (0)