(improvement)(Headless) fix duplicate measure error (#904)

This commit is contained in:
jipeli
2024-04-11 14:49:12 +08:00
committed by GitHub
parent f2b9b61be6
commit 5b84bcf80c

View File

@@ -246,7 +246,7 @@ public class QueryReqConverter {
DataSetQueryParam viewQueryParam) { DataSetQueryParam viewQueryParam) {
String sql = viewQueryParam.getSql(); String sql = viewQueryParam.getSql();
for (MetricTable metricTable : viewQueryParam.getTables()) { for (MetricTable metricTable : viewQueryParam.getTables()) {
List<String> measures = new ArrayList<>(); Set<String> measures = new HashSet<>();
Map<String, String> replaces = new HashMap<>(); Map<String, String> replaces = new HashMap<>();
generateDerivedMetric(semanticSchemaResp, aggOption, metricTable.getMetrics(), generateDerivedMetric(semanticSchemaResp, aggOption, metricTable.getMetrics(),
metricTable.getDimensions(), metricTable.getDimensions(),
@@ -257,7 +257,7 @@ public class QueryReqConverter {
metricTable.setAggOption(AggOption.NATIVE); metricTable.setAggOption(AggOption.NATIVE);
// metricTable use measures replace metric // metricTable use measures replace metric
if (!CollectionUtils.isEmpty(measures)) { 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, private void generateDerivedMetric(SemanticSchemaResp semanticSchemaResp, AggOption aggOption,
List<String> metrics, List<String> dimensions, List<String> metrics, List<String> dimensions,
List<String> measures, Map<String, String> replaces) { Set<String> measures, Map<String, String> replaces) {
List<MetricSchemaResp> metricResps = semanticSchemaResp.getMetrics(); List<MetricSchemaResp> metricResps = semanticSchemaResp.getMetrics();
List<DimSchemaResp> dimensionResps = semanticSchemaResp.getDimensions(); List<DimSchemaResp> dimensionResps = semanticSchemaResp.getDimensions();
// check metrics has derived // check metrics has derived