diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2SemanticLayerService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2SemanticLayerService.java index 3d3969cb8..f85e6464e 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2SemanticLayerService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/facade/service/impl/S2SemanticLayerService.java @@ -123,7 +123,9 @@ public class S2SemanticLayerService implements SemanticLayerService { // 3 translate query QueryStatement queryStatement = buildQueryStatement(queryReq, user); - semanticTranslator.translate(queryStatement); + if (!queryStatement.isTranslated()) { + semanticTranslator.translate(queryStatement); + } // Check whether the dimensions of the metric drill-down are correct temporarily, // add the abstraction of a validator later. diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DictUtils.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DictUtils.java index 1a57ad696..d9c050bb9 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DictUtils.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DictUtils.java @@ -296,6 +296,8 @@ public class DictUtils { modelIds.add(dictItemResp.getModelId()); QuerySqlReq querySqlReq = new QuerySqlReq(); querySqlReq.setSql(sql); + // bypass semantic translation + querySqlReq.getSqlInfo().setQuerySQL(sql); querySqlReq.setNeedAuth(false); querySqlReq.setModelIds(modelIds);