This is an automated email from the ASF dual-hosted git repository. msyavuz pushed a commit to branch msyavuz/fix/drill-by-multi-metric in repository https://gitbox.apache.org/repos/asf/superset.git
commit fa81e629745aed545da1cb3374c9cb84cc98b6f8 Author: Mehmet Salih Yavuz <salih.ya...@proton.me> AuthorDate: Tue Jul 15 13:02:19 2025 +0300 fix(DrillBy): make drill by work with multi metric and dimensioned charts --- .../plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx index 7bfab8e3ef..79bec925a8 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx @@ -209,12 +209,18 @@ export default function EchartsTimeseries({ }), ); groupBy.forEach((dimension, i) => { - const val = labelMap[seriesName][i]; + const dimensionValues = labelMap[seriesName] ?? []; + + // Skip the metric values at the beginning and get the actual dimension value + // If we have multiple metrics, they come first, then the dimension values + const metricsCount = dimensionValues.length - groupBy.length; + const val = dimensionValues[metricsCount + i]; + drillByFilters.push({ col: dimension, op: '==', val, - formattedVal: formatSeriesName(values[i], { + formattedVal: formatSeriesName(val, { timeFormatter: getTimeFormatter(formData.dateFormat), numberFormatter: getNumberFormatter(formData.numberFormat), coltype: coltypeMapping?.[getColumnLabel(dimension)],