From 9aa5c93d9df45d8f77d9425086695a3ed3ba57a3 Mon Sep 17 00:00:00 2001 From: Scott Date: Wed, 6 Dec 2023 14:10:37 +0800 Subject: [PATCH] fix:consider alias of metric when correct group sql (#475) --- .../chat/corrector/BaseSemanticCorrector.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/BaseSemanticCorrector.java b/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/BaseSemanticCorrector.java index 23cb8c20d..0aa56e467 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/BaseSemanticCorrector.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/corrector/BaseSemanticCorrector.java @@ -14,6 +14,7 @@ import com.tencent.supersonic.common.util.jsqlparser.SqlParserSelectHelper; import com.tencent.supersonic.knowledge.service.SchemaService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; import org.springframework.util.CollectionUtils; import java.util.ArrayList; @@ -113,7 +114,15 @@ public abstract class BaseSemanticCorrector implements SemanticCorrector { schemaElement.setDefaultAgg(AggregateTypeEnum.SUM.name()); } return schemaElement; - }).collect(Collectors.toMap(a -> a.getName(), a -> a.getDefaultAgg(), (k1, k2) -> k1)); + }).flatMap(schemaElement -> { + Set elements = new HashSet<>(); + elements.add(schemaElement.getName()); + if (!CollectionUtils.isEmpty(schemaElement.getAlias())) { + elements.addAll(schemaElement.getAlias()); + } + return elements.stream().map(element -> Pair.of(element, schemaElement.getDefaultAgg()) + ); + }).collect(Collectors.toMap(Pair::getLeft, Pair::getRight, (k1, k2) -> k1)); if (CollectionUtils.isEmpty(metricToAggregate)) { return;