Merge pull request #3266 from dataease/pr@dev@dataset

fix: 数据集预览报错
This commit is contained in:
xuwei-fit2cloud 2022-09-29 18:00:06 +08:00 committed by GitHub
commit f43e08fd61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 38 additions and 6 deletions

View File

@ -18,6 +18,7 @@ import io.dataease.plugins.common.dto.sqlObj.SQLObj;
import io.dataease.plugins.common.request.chart.ChartExtFilterRequest;
import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO;
import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem;
import io.dataease.plugins.datasource.entity.JdbcConfiguration;
import io.dataease.plugins.datasource.query.QueryProvider;
import io.dataease.plugins.datasource.query.Utils;
import org.apache.commons.collections4.CollectionUtils;
@ -1334,4 +1335,11 @@ public class Db2QueryProvider extends QueryProvider {
return sql;
}
}
@Override
public String sqlForPreview(String table, Datasource ds){
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
schema = String.format(Db2Constants.KEYWORD_TABLE, schema);
return "SELECT * FROM " + schema + "." + String.format(Db2Constants.KEYWORD_TABLE, table);
}
}

View File

@ -1370,4 +1370,11 @@ public class OracleQueryProvider extends QueryProvider {
return sql;
}
}
@Override
public String sqlForPreview(String table, Datasource ds){
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
schema = String.format(OracleConstants.KEYWORD_TABLE, schema);
return "SELECT * FROM " + schema + "." + String.format(OracleConstants.KEYWORD_TABLE, table);
}
}

View File

@ -1279,4 +1279,11 @@ public class PgQueryProvider extends QueryProvider {
return sql;
}
}
@Override
public String sqlForPreview(String table, Datasource ds){
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
schema = String.format(PgConstants.KEYWORD_TABLE, schema);
return "SELECT * FROM " + schema + "." + String.format(PgConstants.KEYWORD_TABLE, table);
}
}

View File

@ -7,10 +7,7 @@ import io.dataease.plugins.common.base.domain.DatasetTableFieldExample;
import io.dataease.plugins.common.base.domain.Datasource;
import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper;
import io.dataease.plugins.common.constants.DeTypeConstants;
import io.dataease.plugins.common.constants.datasource.PgConstants;
import io.dataease.plugins.common.constants.datasource.RedshiftConstants;
import io.dataease.plugins.common.constants.datasource.SQLConstants;
import io.dataease.plugins.common.constants.datasource.SqlServerSQLConstants;
import io.dataease.plugins.common.constants.datasource.*;
import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO;
import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO;
import io.dataease.plugins.common.dto.chart.ChartViewFieldDTO;
@ -1196,4 +1193,11 @@ public class RedshiftQueryProvider extends QueryProvider {
return sql;
}
}
@Override
public String sqlForPreview(String table, Datasource ds){
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
schema = String.format(PgConstants.KEYWORD_TABLE, schema);
return "SELECT * FROM " + schema + "." + String.format(PgConstants.KEYWORD_TABLE, table);
}
}

View File

@ -1324,4 +1324,11 @@ public class SqlserverQueryProvider extends QueryProvider {
}
return originField;
}
@Override
public String sqlForPreview(String table, Datasource ds){
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
schema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema);
return "SELECT * FROM " + schema + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, table);
}
}

View File

@ -1130,9 +1130,8 @@ public class DataSetTableService {
DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(ds);
DataTableInfoDTO dataTableInfo = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class);
String sql = "SELECT * FROM " + dataTableInfo.getTable();
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
String sqlAsTable = qp.createSQLPreview(sql, null);
String sqlAsTable = qp.createSQLPreview(qp.sqlForPreview(dataTableInfo.getTable(), ds), null);
datasourceRequest.setQuery(sqlAsTable);
datasourceRequest.setTable(dataTableInfo.getTable());
Map<String, List> result = datasourceProvider.fetchResultAndField(datasourceRequest);