forked from github/dataease
fix: 校驗增量sql
This commit is contained in:
parent
2694fc47d3
commit
43e1c198a3
@ -703,7 +703,7 @@ public class DataSetTableService {
|
|||||||
if (StringUtils.isNotEmpty(datasetTableIncrementalConfig.getIncrementalAdd()) && StringUtils.isNotEmpty(datasetTableIncrementalConfig.getIncrementalAdd().replace(" ", ""))) {// 增量添加
|
if (StringUtils.isNotEmpty(datasetTableIncrementalConfig.getIncrementalAdd()) && StringUtils.isNotEmpty(datasetTableIncrementalConfig.getIncrementalAdd().replace(" ", ""))) {// 增量添加
|
||||||
String sql = datasetTableIncrementalConfig.getIncrementalAdd().replace(lastUpdateTime, Long.valueOf(System.currentTimeMillis()).toString())
|
String sql = datasetTableIncrementalConfig.getIncrementalAdd().replace(lastUpdateTime, Long.valueOf(System.currentTimeMillis()).toString())
|
||||||
.replace(currentUpdateTime, Long.valueOf(System.currentTimeMillis()).toString());
|
.replace(currentUpdateTime, Long.valueOf(System.currentTimeMillis()).toString());
|
||||||
datasourceRequest.setQuery(sql);
|
datasourceRequest.setQuery(extractDataService.sqlFix(sql));
|
||||||
List<String> sqlFileds = new ArrayList<>();
|
List<String> sqlFileds = new ArrayList<>();
|
||||||
datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableFiled::getFieldName).forEach(filed -> {
|
datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableFiled::getFieldName).forEach(filed -> {
|
||||||
sqlFileds.add(filed);
|
sqlFileds.add(filed);
|
||||||
@ -716,7 +716,7 @@ public class DataSetTableService {
|
|||||||
if (StringUtils.isNotEmpty(datasetTableIncrementalConfig.getIncrementalDelete()) && StringUtils.isNotEmpty(datasetTableIncrementalConfig.getIncrementalDelete().replace(" ", ""))) {// 增量删除
|
if (StringUtils.isNotEmpty(datasetTableIncrementalConfig.getIncrementalDelete()) && StringUtils.isNotEmpty(datasetTableIncrementalConfig.getIncrementalDelete().replace(" ", ""))) {// 增量删除
|
||||||
String sql = datasetTableIncrementalConfig.getIncrementalDelete().replace(lastUpdateTime, Long.valueOf(System.currentTimeMillis()).toString())
|
String sql = datasetTableIncrementalConfig.getIncrementalDelete().replace(lastUpdateTime, Long.valueOf(System.currentTimeMillis()).toString())
|
||||||
.replace(currentUpdateTime, Long.valueOf(System.currentTimeMillis()).toString());
|
.replace(currentUpdateTime, Long.valueOf(System.currentTimeMillis()).toString());
|
||||||
datasourceRequest.setQuery(sql);
|
datasourceRequest.setQuery(extractDataService.sqlFix(sql));
|
||||||
List<String> sqlFileds = new ArrayList<>();
|
List<String> sqlFileds = new ArrayList<>();
|
||||||
datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableFiled::getFieldName).forEach(filed -> {
|
datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableFiled::getFieldName).forEach(filed -> {
|
||||||
sqlFileds.add(filed);
|
sqlFileds.add(filed);
|
||||||
|
@ -566,11 +566,10 @@ public class ExtractDataService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String fetchSqlField(String sql, Datasource ds) throws Exception {
|
private String fetchSqlField(String sql, Datasource ds) throws Exception {
|
||||||
String tmpSql = "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT 0";
|
|
||||||
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
|
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
|
||||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||||
datasourceRequest.setDatasource(ds);
|
datasourceRequest.setDatasource(ds);
|
||||||
datasourceRequest.setQuery(tmpSql);
|
datasourceRequest.setQuery(sqlFix(sql));
|
||||||
List<String> dorisFileds = new ArrayList<>();
|
List<String> dorisFileds = new ArrayList<>();
|
||||||
datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableFiled::getFieldName).forEach(filed ->{
|
datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableFiled::getFieldName).forEach(filed ->{
|
||||||
dorisFileds.add(DorisTableUtils.columnName(filed));
|
dorisFileds.add(DorisTableUtils.columnName(filed));
|
||||||
@ -578,12 +577,13 @@ public class ExtractDataService {
|
|||||||
return String.join(",", dorisFileds);
|
return String.join(",", dorisFileds);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String sqlFix(String sql) {
|
public String sqlFix(String sql) {
|
||||||
sql = sql.trim();
|
sql = sql.trim();
|
||||||
if (sql.lastIndexOf(";") == (sql.length() - 1)) {
|
if (sql.lastIndexOf(";") == (sql.length() - 1)) {
|
||||||
sql = sql.substring(0, sql.length() - 1);
|
sql = sql.substring(0, sql.length() - 1);
|
||||||
}
|
}
|
||||||
return sql;
|
String tmpSql = "SELECT * FROM (" + sql + ") AS tmp " + " LIMIT 0";
|
||||||
|
return tmpSql;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user