mirror of
https://github.com/dataease/dataease.git
synced 2026-05-15 05:22:13 +08:00
fix(calcite): 修复新建和删除数据源时空连接导致的unwrap异常,在获取CalciteConnection前增加空连接检查
This commit is contained in:
@@ -1597,7 +1597,8 @@ public class CalciteProvider extends Provider {
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
datasourceRequest.setDsList(Map.of(datasourceSchemaDTO.getId(), datasourceSchemaDTO));
|
||||
try {
|
||||
CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);
|
||||
Connection conn = (connection != null) ? connection : getCalciteConnection();
|
||||
CalciteConnection calciteConnection = conn.unwrap(CalciteConnection.class);
|
||||
SchemaPlus rootSchema = buildSchema(datasourceRequest, calciteConnection);
|
||||
} catch (Exception e) {
|
||||
DEException.throwException(e.getMessage());
|
||||
@@ -1633,7 +1634,8 @@ public class CalciteProvider extends Provider {
|
||||
BeanUtils.copyBean(datasourceSchemaDTO, datasource);
|
||||
datasourceSchemaDTO.setSchemaAlias(String.format(SQLConstants.SCHEMA, datasourceSchemaDTO.getId()));
|
||||
try {
|
||||
CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);
|
||||
Connection conn = (connection != null) ? connection : getCalciteConnection();
|
||||
CalciteConnection calciteConnection = conn.unwrap(CalciteConnection.class);
|
||||
SchemaPlus rootSchema = calciteConnection.getRootSchema();
|
||||
if (rootSchema.getSubSchema(datasourceSchemaDTO.getSchemaAlias()) != null) {
|
||||
JdbcSchema jdbcSchema = rootSchema.getSubSchema(datasourceSchemaDTO.getSchemaAlias()).unwrap(JdbcSchema.class);
|
||||
|
||||
Reference in New Issue
Block a user