From 88253780d708bc1c005a87c186c4b0b14325c8a0 Mon Sep 17 00:00:00 2001 From: Sandeep Kumar <83278309+tsdk02@users.noreply.github.com> Date: Mon, 4 Nov 2024 19:49:23 +0530 Subject: [PATCH] fix(analytics): add dynamic limit by clause in failure reasons metric query (#6462) --- .../sessionized_metrics/failure_reasons.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/crates/analytics/src/payments/metrics/sessionized_metrics/failure_reasons.rs b/crates/analytics/src/payments/metrics/sessionized_metrics/failure_reasons.rs index 70ae64e011..bcbce0502d 100644 --- a/crates/analytics/src/payments/metrics/sessionized_metrics/failure_reasons.rs +++ b/crates/analytics/src/payments/metrics/sessionized_metrics/failure_reasons.rs @@ -148,17 +148,20 @@ where .attach_printable("Error adding order by clause") .switch()?; - for dim in dimensions.iter() { - if dim != &PaymentDimensions::ErrorReason { - outer_query_builder - .add_order_by_clause(dim, Order::Ascending) - .attach_printable("Error adding order by clause") - .switch()?; - } + let filtered_dimensions: Vec<&PaymentDimensions> = dimensions + .iter() + .filter(|&&dim| dim != PaymentDimensions::ErrorReason) + .collect(); + + for dim in &filtered_dimensions { + outer_query_builder + .add_order_by_clause(*dim, Order::Ascending) + .attach_printable("Error adding order by clause") + .switch()?; } outer_query_builder - .set_limit_by(5, &[PaymentDimensions::Connector]) + .set_limit_by(5, &filtered_dimensions) .attach_printable("Error adding limit clause") .switch()?;