forked from github/dataease
fix(数据集):sql数据集优化
This commit is contained in:
parent
7a5037068e
commit
2cd8111047
@ -74,6 +74,11 @@ public class DataSetTableService {
|
|||||||
|
|
||||||
public DatasetTable save(DatasetTable datasetTable) throws Exception {
|
public DatasetTable save(DatasetTable datasetTable) throws Exception {
|
||||||
checkName(datasetTable);
|
checkName(datasetTable);
|
||||||
|
if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) {
|
||||||
|
DataSetTableRequest dataSetTableRequest = new DataSetTableRequest();
|
||||||
|
BeanUtils.copyBean(dataSetTableRequest, datasetTable);
|
||||||
|
getSQLPreview(dataSetTableRequest);
|
||||||
|
}
|
||||||
if (StringUtils.isEmpty(datasetTable.getId())) {
|
if (StringUtils.isEmpty(datasetTable.getId())) {
|
||||||
datasetTable.setId(UUID.randomUUID().toString());
|
datasetTable.setId(UUID.randomUUID().toString());
|
||||||
datasetTable.setCreateBy(AuthUtils.getUser().getUsername());
|
datasetTable.setCreateBy(AuthUtils.getUser().getUsername());
|
||||||
@ -320,6 +325,10 @@ public class DataSetTableService {
|
|||||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||||
datasourceRequest.setDatasource(ds);
|
datasourceRequest.setDatasource(ds);
|
||||||
String sql = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql();
|
String sql = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql();
|
||||||
|
// 使用输入的sql先预执行一次
|
||||||
|
datasourceRequest.setQuery(sql);
|
||||||
|
datasourceProvider.fetchResultAndField(datasourceRequest);
|
||||||
|
// 正式执行
|
||||||
datasourceRequest.setQuery("SELECT * FROM (" + sql + ") AS tmp LIMIT 0,1000");
|
datasourceRequest.setQuery("SELECT * FROM (" + sql + ") AS tmp LIMIT 0,1000");
|
||||||
Map<String, List> result = datasourceProvider.fetchResultAndField(datasourceRequest);
|
Map<String, List> result = datasourceProvider.fetchResultAndField(datasourceRequest);
|
||||||
List<String[]> data = result.get("dataList");
|
List<String[]> data = result.get("dataList");
|
||||||
|
Loading…
Reference in New Issue
Block a user