[improvement][headless]Expression replacement logic supports more complex sql.
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

This commit is contained in:
jerryjzhang
2025-01-05 16:09:42 +08:00
parent 6fcfdc15e1
commit 4e653c1fb1
6 changed files with 59 additions and 8 deletions

View File

@@ -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);
}
}

View File

@@ -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);
}
}