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 57821e84a..76a005d67 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 @@ -303,8 +303,8 @@ public class S2SemanticLayerService implements SemanticLayerService { QueryStatement queryStatement = new QueryStatement(); queryStatement.setEnableOptimize(queryUtils.enableOptimize()); - queryStatement.setLimit(Integer.parseInt(translatorConfig.getParameterValue( - TranslatorConfig.TRANSLATOR_RESULT_LIMIT))); + queryStatement.setLimit(Integer.parseInt( + translatorConfig.getParameterValue(TranslatorConfig.TRANSLATOR_RESULT_LIMIT))); queryStatement.setDataSetId(queryReq.getDataSetId()); queryStatement.setDataSetName(queryReq.getDataSetName()); queryStatement.setSemanticSchema(semanticSchemaResp); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java index 69f4d5147..8399baf23 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java @@ -145,8 +145,7 @@ public class ModelServiceImpl implements ModelService { // Comment out below checks for now, they seem unnecessary and // lead to unexpected exception in updating model /* - checkParams(modelReq); - checkRelations(modelReq); + * checkParams(modelReq); checkRelations(modelReq); */ ModelDO modelDO = modelRepository.getModelById(modelReq.getId()); ModelConverter.convert(modelDO, modelReq, user); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java index a5b091234..b2f23294e 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java @@ -109,7 +109,9 @@ public class ModelConverter { dimensionReq.setModelId(modelDO.getId()); dimensionReq.setExpr(dim.getExpr()); dimensionReq.setType(dim.getType().name()); - dimensionReq.setDescription(Objects.isNull(dim.getDescription()) ? dimensionReq.getDescription() : dim.getDescription()); + dimensionReq + .setDescription(Objects.isNull(dim.getDescription()) ? dimensionReq.getDescription() + : dim.getDescription()); dimensionReq.setTypeParams(dim.getTypeParams()); return dimensionReq; } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryUtils.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryUtils.java index 767e1a417..dd503d04c 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryUtils.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryUtils.java @@ -100,7 +100,28 @@ public class QueryUtils { column.setDataFormatType(metricRespMap.get(nameEn).getDataFormatType()); column.setDataFormat(metricRespMap.get(nameEn).getDataFormat()); column.setModelId(metricRespMap.get(nameEn).getModelId()); + } else { + // if column nameEn contains metric name, use metric dataFormatType + metricRespMap.values().forEach(metric -> { + if (nameEn.contains(metric.getName()) || nameEn.contains(metric.getBizName())) { + column.setDataFormatType(metric.getDataFormatType()); + column.setDataFormat(metric.getDataFormat()); + column.setModelId(metric.getModelId()); + } + // if column nameEn contains metric alias, use metric dataFormatType + if (column.getDataFormatType() == null && metric.getAlias() != null) { + for (String alias : metric.getAlias().split(",")) { + if (nameEn.contains(alias)) { + column.setDataFormatType(metric.getDataFormatType()); + column.setDataFormat(metric.getDataFormat()); + column.setModelId(metric.getModelId()); + break; + } + } + } + }); } + if (dimensionRespMap.containsKey(nameEn)) { column.setModelId(dimensionRespMap.get(nameEn).getModelId()); } @@ -119,7 +140,7 @@ public class QueryUtils { || type.equalsIgnoreCase("float") || type.equalsIgnoreCase("double") || type.equalsIgnoreCase("real") || type.equalsIgnoreCase("numeric") || type.toLowerCase().startsWith("decimal") || type.toLowerCase().startsWith("uint") - || type.toLowerCase().startsWith("int"); + || type.toLowerCase().startsWith("int") || type.toLowerCase().equalsIgnoreCase("decfloat"); } private String getName(String nameEn) {