mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 12:37:55 +00:00
(improvement)(Headless) fixed execution null database when skip translation (#1233)
This commit is contained in:
@@ -28,6 +28,7 @@ import com.tencent.supersonic.headless.api.pojo.request.QuerySqlReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq;
|
import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.SchemaFilterReq;
|
import com.tencent.supersonic.headless.api.pojo.request.SchemaFilterReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ExplainResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ExplainResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
|
||||||
@@ -44,6 +45,7 @@ import com.tencent.supersonic.headless.core.utils.ComponentFactory;
|
|||||||
import com.tencent.supersonic.headless.server.annotation.S2DataPermission;
|
import com.tencent.supersonic.headless.server.annotation.S2DataPermission;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
||||||
import com.tencent.supersonic.headless.server.manager.SemanticSchemaManager;
|
import com.tencent.supersonic.headless.server.manager.SemanticSchemaManager;
|
||||||
|
import com.tencent.supersonic.headless.server.utils.DatabaseConverter;
|
||||||
import com.tencent.supersonic.headless.server.utils.QueryReqConverter;
|
import com.tencent.supersonic.headless.server.utils.QueryReqConverter;
|
||||||
import com.tencent.supersonic.headless.server.utils.QueryUtils;
|
import com.tencent.supersonic.headless.server.utils.QueryUtils;
|
||||||
import com.tencent.supersonic.headless.server.utils.StatUtils;
|
import com.tencent.supersonic.headless.server.utils.StatUtils;
|
||||||
@@ -207,6 +209,12 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
|
|
||||||
private QueryStatement buildSqlInfoStatement(SqlInfo sqlInfo, Long dataSetId) {
|
private QueryStatement buildSqlInfoStatement(SqlInfo sqlInfo, Long dataSetId) {
|
||||||
QueryStatement queryStatement = new QueryStatement();
|
QueryStatement queryStatement = new QueryStatement();
|
||||||
|
SemanticModel semanticModel = new SemanticModel();
|
||||||
|
DatabaseResp databaseResp = schemaService.getDatabase(Long.valueOf(sqlInfo.getSourceId()));
|
||||||
|
if (Objects.nonNull(databaseResp)) {
|
||||||
|
semanticModel.setDatabase(DatabaseConverter.convert(databaseResp));
|
||||||
|
}
|
||||||
|
queryStatement.setSemanticModel(semanticModel);
|
||||||
queryStatement.setSql(sqlInfo.getQuerySQL());
|
queryStatement.setSql(sqlInfo.getQuerySQL());
|
||||||
queryStatement.setSourceId(sqlInfo.getSourceId());
|
queryStatement.setSourceId(sqlInfo.getSourceId());
|
||||||
queryStatement.setDataSetId(dataSetId);
|
queryStatement.setDataSetId(dataSetId);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.tencent.supersonic.headless.api.pojo.ItemDateFilter;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.SemanticSchema;
|
import com.tencent.supersonic.headless.api.pojo.SemanticSchema;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.ItemUseReq;
|
import com.tencent.supersonic.headless.api.pojo.request.ItemUseReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.SchemaFilterReq;
|
import com.tencent.supersonic.headless.api.pojo.request.SchemaFilterReq;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DomainResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DomainResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
|
||||||
@@ -58,4 +59,6 @@ public interface SchemaService {
|
|||||||
Map<Long, String> modelIdName);
|
Map<Long, String> modelIdName);
|
||||||
|
|
||||||
ItemDateResp getItemDate(ItemDateFilter dimension, ItemDateFilter metric);
|
ItemDateResp getItemDate(ItemDateFilter dimension, ItemDateFilter metric);
|
||||||
|
|
||||||
|
DatabaseResp getDatabase(Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -508,4 +508,9 @@ public class SchemaServiceImpl implements SchemaService {
|
|||||||
return modelService.getItemDate(dimension, metric);
|
return modelService.getItemDate(dimension, metric);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DatabaseResp getDatabase(Long id) {
|
||||||
|
return databaseService.getDatabase(id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user