From 5b84bcf80c183e9e1dd597487395a22cb1e759a0 Mon Sep 17 00:00:00 2001 From: jipeli <54889677+jipeli@users.noreply.github.com> Date: Thu, 11 Apr 2024 14:49:12 +0800 Subject: [PATCH] (improvement)(Headless) fix duplicate measure error (#904) --- .../supersonic/headless/server/utils/QueryReqConverter.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java index 9bb7979d9..a146d077d 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java @@ -246,7 +246,7 @@ public class QueryReqConverter { DataSetQueryParam viewQueryParam) { String sql = viewQueryParam.getSql(); for (MetricTable metricTable : viewQueryParam.getTables()) { - List measures = new ArrayList<>(); + Set measures = new HashSet<>(); Map replaces = new HashMap<>(); generateDerivedMetric(semanticSchemaResp, aggOption, metricTable.getMetrics(), metricTable.getDimensions(), @@ -257,7 +257,7 @@ public class QueryReqConverter { metricTable.setAggOption(AggOption.NATIVE); // metricTable use measures replace metric if (!CollectionUtils.isEmpty(measures)) { - metricTable.setMetrics(measures); + metricTable.setMetrics(new ArrayList<>(measures)); } } } @@ -266,7 +266,7 @@ public class QueryReqConverter { private void generateDerivedMetric(SemanticSchemaResp semanticSchemaResp, AggOption aggOption, List metrics, List dimensions, - List measures, Map replaces) { + Set measures, Map replaces) { List metricResps = semanticSchemaResp.getMetrics(); List dimensionResps = semanticSchemaResp.getDimensions(); // check metrics has derived