[fix][headless]Fix create model exception.
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-16 11:09:41 +08:00
parent 8900fde4a3
commit 416488b919
4 changed files with 42 additions and 22 deletions

View File

@@ -1,16 +1,15 @@
package com.tencent.supersonic.common.pojo.enums; package com.tencent.supersonic.common.pojo.enums;
public enum EngineType { public enum EngineType {
TDW(0, "tdw"), TDW(0, "TDW"),
MYSQL(1, "mysql"), MYSQL(1, "MYSQL"),
DORIS(2, "doris"), DORIS(2, "DORIS"),
CLICKHOUSE(3, "clickhouse"), CLICKHOUSE(3, "CLICKHOUSE"),
KAFKA(4, "kafka"), H2(5, "H2"),
H2(5, "h2"), POSTGRESQL(6, "POSTGRESQL"),
POSTGRESQL(6, "postgresql"), OTHER(7, "OTHER"),
OTHER(7, "other"), DUCKDB(8, "DUCKDB"),
DUCKDB(8, "duckdb"), HANADB(9, "HANADB");
HANADB(9, "hanadb");
private Integer code; private Integer code;

View File

@@ -202,7 +202,8 @@ public class DatabaseServiceImpl extends ServiceImpl<DatabaseDOMapper, DatabaseD
@Override @Override
public List<String> getDbNames(Long id) throws SQLException { public List<String> getDbNames(Long id) throws SQLException {
DatabaseResp databaseResp = getDatabase(id); DatabaseResp databaseResp = getDatabase(id);
DbAdaptor dbAdaptor = DbAdaptorFactory.getEngineAdaptor(databaseResp.getType()); DbAdaptor dbAdaptor =
DbAdaptorFactory.getEngineAdaptor(databaseResp.getType().toUpperCase());
return dbAdaptor.getDBs(DatabaseConverter.getConnectInfo(databaseResp)); return dbAdaptor.getDBs(DatabaseConverter.getConnectInfo(databaseResp));
} }

View File

@@ -28,8 +28,7 @@ public class ModelConverter {
public static ModelDO convert(ModelReq modelReq, User user) { public static ModelDO convert(ModelReq modelReq, User user) {
ModelDO modelDO = new ModelDO(); ModelDO modelDO = new ModelDO();
// ModelDetail modelDetail = createModelDetail(modelReq); ModelDetail modelDetail = createModelDetail(modelReq);
ModelDetail modelDetail = modelReq.getModelDetail();
modelReq.createdBy(user.getName()); modelReq.createdBy(user.getName());
BeanMapper.mapper(modelReq, modelDO); BeanMapper.mapper(modelReq, modelDO);
modelDO.setStatus(StatusEnum.ONLINE.getCode()); modelDO.setStatus(StatusEnum.ONLINE.getCode());
@@ -267,16 +266,37 @@ public class ModelConverter {
private static ModelDetail createModelDetail(ModelReq modelReq) { private static ModelDetail createModelDetail(ModelReq modelReq) {
ModelDetail modelDetail = new ModelDetail(); ModelDetail modelDetail = new ModelDetail();
List<Measure> measures = modelReq.getModelDetail().getMeasures(); List<Measure> measures = modelReq.getModelDetail().getMeasures();
if (measures == null) { List<Dimension> dimensions = modelReq.getModelDetail().getDimensions();
measures = Lists.newArrayList(); List<Identify> identifiers = modelReq.getModelDetail().getIdentifiers();
}
if (measures != null) {
for (Measure measure : measures) { for (Measure measure : measures) {
if (StringUtils.isBlank(measure.getBizName())) { if (StringUtils.isBlank(measure.getBizName())) {
continue; continue;
} }
measure.setExpr(measure.getBizName()); measure.setExpr(measure.getBizName());
measure.setBizName(String.format("%s_%s", modelReq.getBizName(), measure.getExpr()));
} }
}
if (dimensions != null) {
for (Dimension dimension : dimensions) {
if (StringUtils.isBlank(dimension.getBizName())) {
continue;
}
dimension.setExpr(dimension.getBizName());
}
}
if (identifiers != null) {
for (Identify identify : identifiers) {
if (StringUtils.isBlank(identify.getBizName())) {
continue;
}
if (StringUtils.isBlank(identify.getName())) {
identify.setName(identify.getBizName());
}
identify.setIsCreateDimension(1);
}
}
BeanMapper.mapper(modelReq.getModelDetail(), modelDetail); BeanMapper.mapper(modelReq.getModelDetail(), modelDetail);
return modelDetail; return modelDetail;
} }

View File

@@ -92,7 +92,7 @@ public class TranslatorTest extends BaseTest {
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser()); .translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser());
assertNotNull(explain); assertNotNull(explain);
assertNotNull(explain.getQuerySQL()); assertNotNull(explain.getQuerySQL());
assertTrue(explain.getQuerySQL().contains("department")); assertTrue(explain.getQuerySQL().contains("user_name"));
assertTrue(explain.getQuerySQL().contains("pv")); assertTrue(explain.getQuerySQL().contains("pv"));
executeSql(explain.getQuerySQL()); executeSql(explain.getQuerySQL());
} }