4 Commits

Author SHA1 Message Date
mroldx
61e0f897be Merge 9db9718e88 into 79a44b27ee 2025-07-01 16:20:37 +08:00
jerryjzhang
79a44b27ee [fix][heaadless]Fix NPE issues.
Some checks failed
supersonic CentOS CI / build (21) (push) Has been cancelled
supersonic mac CI / build (21) (push) Has been cancelled
supersonic ubuntu CI / build (21) (push) Has been cancelled
supersonic windows CI / build (21) (push) Has been cancelled
2025-06-28 08:51:04 +08:00
jerryjzhang
76cc5ee111 [opt][heaadless]Add user field to QueryStatement for consistency.
Some checks are pending
supersonic CentOS CI / build (21) (push) Waiting to run
supersonic mac CI / build (21) (push) Waiting to run
supersonic ubuntu CI / build (21) (push) Waiting to run
supersonic windows CI / build (21) (push) Waiting to run
2025-06-27 19:46:00 +08:00
mroldx
9db9718e88 Update sql-update-mysql.sql
column  last_loin  ----->last_login
2025-06-12 14:26:12 +08:00
6 changed files with 16 additions and 8 deletions

View File

@@ -1,5 +1,6 @@
package com.tencent.supersonic.headless.core.pojo; package com.tencent.supersonic.headless.core.pojo;
import com.tencent.supersonic.common.pojo.User;
import com.tencent.supersonic.headless.api.pojo.response.QueryState; import com.tencent.supersonic.headless.api.pojo.response.QueryState;
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp; import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
import lombok.Data; import lombok.Data;
@@ -24,6 +25,7 @@ public class QueryStatement {
private SemanticSchemaResp semanticSchema; private SemanticSchemaResp semanticSchema;
private Integer limit = 1000; private Integer limit = 1000;
private Boolean isTranslated = false; private Boolean isTranslated = false;
private User user;
public boolean isOk() { public boolean isOk() {
return StringUtils.isBlank(errMsg) && StringUtils.isNotBlank(sql); return StringUtils.isBlank(errMsg) && StringUtils.isNotBlank(sql);

View File

@@ -296,6 +296,9 @@ public class S2SemanticLayerService implements SemanticLayerService {
queryStatement.setSql(semanticQueryReq.getSqlInfo().getQuerySQL()); queryStatement.setSql(semanticQueryReq.getSqlInfo().getQuerySQL());
queryStatement.setIsTranslated(true); queryStatement.setIsTranslated(true);
} }
if (queryStatement != null) {
queryStatement.setUser(user);
}
return queryStatement; return queryStatement;
} }

View File

@@ -178,7 +178,8 @@ public class ChatWorkflowEngine {
// 如果物理SQL被修正了更新querySQL为修正后的版本 // 如果物理SQL被修正了更新querySQL为修正后的版本
SemanticParseInfo parseInfo = semanticQuery.getParseInfo(); SemanticParseInfo parseInfo = semanticQuery.getParseInfo();
if (StringUtils.isNotBlank(parseInfo.getSqlInfo().getCorrectedQuerySQL())) { if (StringUtils.isNotBlank(parseInfo.getSqlInfo().getCorrectedQuerySQL())) {
parseInfo.getSqlInfo().setQuerySQL(parseInfo.getSqlInfo().getCorrectedQuerySQL()); parseInfo.getSqlInfo()
.setQuerySQL(parseInfo.getSqlInfo().getCorrectedQuerySQL());
log.info("Physical SQL corrected and updated querySQL: {}", log.info("Physical SQL corrected and updated querySQL: {}",
parseInfo.getSqlInfo().getQuerySQL()); parseInfo.getSqlInfo().getQuerySQL());
} }

View File

@@ -138,7 +138,8 @@ public class DictUtils {
semanticQueryReq.setNeedAuth(false); semanticQueryReq.setNeedAuth(false);
String bizName = dictItemResp.getBizName(); String bizName = dictItemResp.getBizName();
try { try {
SemanticQueryResp semanticQueryResp = queryService.queryByReq(semanticQueryReq, null); SemanticQueryResp semanticQueryResp =
queryService.queryByReq(semanticQueryReq, User.getDefaultUser());
if (Objects.isNull(semanticQueryResp) if (Objects.isNull(semanticQueryResp)
|| CollectionUtils.isEmpty(semanticQueryResp.getResultList())) { || CollectionUtils.isEmpty(semanticQueryResp.getResultList())) {
return lines; return lines;
@@ -274,7 +275,8 @@ public class DictUtils {
private QuerySqlReq constructQuerySqlReq(DictItemResp dictItemResp) { private QuerySqlReq constructQuerySqlReq(DictItemResp dictItemResp) {
ModelResp model = modelService.getModel(dictItemResp.getModelId()); ModelResp model = modelService.getModel(dictItemResp.getModelId());
String tableStr = model.getModelDetail().getTableQuery() != null ? model.getModelDetail().getTableQuery() String tableStr = StringUtils.isNotBlank(model.getModelDetail().getTableQuery())
? model.getModelDetail().getTableQuery()
: "(" + model.getModelDetail().getSqlQuery() + ")"; : "(" + model.getModelDetail().getSqlQuery() + ")";
String sqlPattern = String sqlPattern =
"select %s,count(1) from %s %s group by %s order by count(1) desc limit %d"; "select %s,count(1) from %s %s group by %s order by count(1) desc limit %d";
@@ -289,8 +291,7 @@ public class DictUtils {
limit = Integer.MAX_VALUE; limit = Integer.MAX_VALUE;
} }
String sql = String sql = String.format(sqlPattern, dimBizName, tableStr, where, dimBizName, limit);
String.format(sqlPattern, dimBizName, tableStr, where, dimBizName, limit);
Set<Long> modelIds = new HashSet<>(); Set<Long> modelIds = new HashSet<>();
modelIds.add(dictItemResp.getModelId()); modelIds.add(dictItemResp.getModelId());
QuerySqlReq querySqlReq = new QuerySqlReq(); QuerySqlReq querySqlReq = new QuerySqlReq();

View File

@@ -109,7 +109,8 @@ public class QueryUtils {
column.setModelId(metric.getModelId()); column.setModelId(metric.getModelId());
} }
// if column nameEn contains metric alias, use metric dataFormatType // if column nameEn contains metric alias, use metric dataFormatType
if (column.getDataFormatType() == null && StringUtils.isNotEmpty(metric.getAlias())) { if (column.getDataFormatType() == null
&& StringUtils.isNotEmpty(metric.getAlias())) {
for (String alias : metric.getAlias().split(",")) { for (String alias : metric.getAlias().split(",")) {
if (nameEn.contains(alias)) { if (nameEn.contains(alias)) {
column.setDataFormatType(metric.getDataFormatType()); column.setDataFormatType(metric.getDataFormatType());

View File

@@ -420,4 +420,4 @@ ALTER TABLE s2_chat_model add column is_open tinyint DEFAULT NULL COMMENT '是
ALTER TABLE s2_database add column is_open tinyint DEFAULT NULL COMMENT '是否公开'; ALTER TABLE s2_database add column is_open tinyint DEFAULT NULL COMMENT '是否公开';
--20250321 --20250321
ALTER TABLE s2_user add column last_loin datetime DEFAULT NULL; ALTER TABLE s2_user add column last_login datetime DEFAULT NULL;