diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/execute/EntityInfoExecuteResponder.java b/chat/core/src/main/java/com/tencent/supersonic/chat/responder/execute/EntityInfoExecuteResponder.java index 4659e0bcc..2b5d67230 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/responder/execute/EntityInfoExecuteResponder.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/responder/execute/EntityInfoExecuteResponder.java @@ -17,6 +17,9 @@ public class EntityInfoExecuteResponder implements ExecuteResponder { @Override public void fillResponse(QueryResult queryResult, SemanticParseInfo semanticParseInfo, ExecuteQueryReq queryReq) { + if (semanticParseInfo == null || semanticParseInfo.getModelId() <= 0L) { + return; + } SemanticService semanticService = ContextUtils.getBean(SemanticService.class); User user = queryReq.getUser(); queryResult.setEntityInfo(semanticService.getEntityInfo(semanticParseInfo, user)); @@ -27,6 +30,9 @@ public class EntityInfoExecuteResponder implements ExecuteResponder { return; } String primaryEntityBizName = entityInfo.getModelInfo().getPrimaryEntityBizName(); + if (CollectionUtils.isEmpty(queryResult.getQueryColumns())) { + return; + } boolean existPrimaryEntityName = queryResult.getQueryColumns().stream() .anyMatch(queryColumn -> primaryEntityBizName.equals(queryColumn.getNameEn())); diff --git a/common/src/main/java/com/tencent/supersonic/common/util/jsqlparser/SqlParserUpdateHelper.java b/common/src/main/java/com/tencent/supersonic/common/util/jsqlparser/SqlParserUpdateHelper.java index 0191d9b6c..a1f9ffa98 100644 --- a/common/src/main/java/com/tencent/supersonic/common/util/jsqlparser/SqlParserUpdateHelper.java +++ b/common/src/main/java/com/tencent/supersonic/common/util/jsqlparser/SqlParserUpdateHelper.java @@ -312,7 +312,7 @@ public class SqlParserUpdateHelper { } public static String addGroupBy(String sql, Set groupByFields) { - if (SqlParserSelectHelper.hasGroupBy(sql) || CollectionUtils.isEmpty(groupByFields)) { + if (CollectionUtils.isEmpty(groupByFields)) { return sql; } Select selectStatement = SqlParserSelectHelper.getSelect(sql); @@ -324,6 +324,10 @@ public class SqlParserUpdateHelper { PlainSelect plainSelect = (PlainSelect) selectBody; GroupByElement groupByElement = new GroupByElement(); + List originalGroupByFields = SqlParserSelectHelper.getGroupByFields(sql); + if (!CollectionUtils.isEmpty(originalGroupByFields)) { + groupByFields.addAll(originalGroupByFields); + } for (String groupByField : groupByFields) { groupByElement.addGroupByExpression(new Column(groupByField)); }