mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 12:07:42 +00:00
[improvement][headless]Expression replacement logic supports more complex sql.
This commit is contained in:
@@ -2,6 +2,7 @@ package com.tencent.supersonic.headless.core.translator.parser;
|
||||
|
||||
import com.tencent.supersonic.common.jsqlparser.SqlReplaceHelper;
|
||||
import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper;
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.pojo.OntologyQuery;
|
||||
@@ -40,7 +41,9 @@ public class DimExpressionParser implements QueryParser {
|
||||
|
||||
Map<String, String> bizName2Expr = getDimensionExpressions(semanticSchema, ontologyQuery);
|
||||
if (!CollectionUtils.isEmpty(bizName2Expr)) {
|
||||
String sql = SqlReplaceHelper.replaceSqlByExpression(sqlQuery.getSql(), bizName2Expr);
|
||||
String sql = SqlReplaceHelper.replaceSqlByExpression(
|
||||
Constants.TABLE_PREFIX + queryStatement.getDataSetId(), sqlQuery.getSql(),
|
||||
bizName2Expr);
|
||||
sqlQuery.setSql(sql);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.tencent.supersonic.headless.core.translator.parser;
|
||||
|
||||
import com.tencent.supersonic.common.jsqlparser.SqlReplaceHelper;
|
||||
import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper;
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.headless.api.pojo.Measure;
|
||||
import com.tencent.supersonic.headless.api.pojo.enums.MetricDefineType;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.MetricSchemaResp;
|
||||
@@ -39,7 +40,9 @@ public class MetricExpressionParser implements QueryParser {
|
||||
|
||||
Map<String, String> bizName2Expr = getMetricExpressions(semanticSchema, ontologyQuery);
|
||||
if (!CollectionUtils.isEmpty(bizName2Expr)) {
|
||||
String sql = SqlReplaceHelper.replaceSqlByExpression(sqlQuery.getSql(), bizName2Expr);
|
||||
String sql = SqlReplaceHelper.replaceSqlByExpression(
|
||||
Constants.TABLE_PREFIX + queryStatement.getDataSetId(), sqlQuery.getSql(),
|
||||
bizName2Expr);
|
||||
sqlQuery.setSql(sql);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,6 +347,7 @@ public class SchemaServiceImpl implements SchemaService {
|
||||
DataSetSchemaResp dataSetSchemaResp =
|
||||
fetchDataSetSchema(schemaFilterReq.getDataSetId());
|
||||
BeanUtils.copyProperties(dataSetSchemaResp, semanticSchemaResp);
|
||||
semanticSchemaResp.setDataSetResp(dataSetSchemaResp);
|
||||
List<Long> modelIds = dataSetSchemaResp.getAllModels();
|
||||
MetaFilter metaFilter = new MetaFilter();
|
||||
metaFilter.setIds(modelIds);
|
||||
|
||||
Reference in New Issue
Block a user