fix: MySQL 数据表中有 blob 类型字段时定时同步预览无数据

This commit is contained in:
taojinlong 2023-12-19 11:53:50 +08:00
parent 2c0d5cd2ad
commit fefec9337e
5 changed files with 22 additions and 12 deletions

View File

@ -804,7 +804,7 @@ public class JdbcProvider extends DefaultJdbcProvider {
case StarRocks: case StarRocks:
MysqlConfiguration mysqlConfiguration = new Gson().fromJson(datasource.getConfiguration(), MysqlConfiguration.class); MysqlConfiguration mysqlConfiguration = new Gson().fromJson(datasource.getConfiguration(), MysqlConfiguration.class);
mysqlConfiguration.getJdbc(); mysqlConfiguration.getJdbc();
if(!mysqlConfiguration.getDataBase().matches("^[0-9a-zA-Z_.-]{1,}$")){ if(!mysqlConfiguration.getDataBase().matches("^[ 0-9a-zA-Z_.-]{1,}$")){
throw new Exception("Invalid database name"); throw new Exception("Invalid database name");
} }
break; break;

View File

@ -428,7 +428,6 @@ public class OracleQueryProvider extends QueryProvider {
chartViewFieldDTO.setOriginName("ROWNUM"); chartViewFieldDTO.setOriginName("ROWNUM");
xAxis.add(chartViewFieldDTO); xAxis.add(chartViewFieldDTO);
List<ChartFieldCustomFilterDTO> fieldCustomFilter = new ArrayList<>(); List<ChartFieldCustomFilterDTO> fieldCustomFilter = new ArrayList<>();
for (ChartFieldCustomFilterDTO chartFieldCustomFilterDTO : OrgFieldCustomFilter) { for (ChartFieldCustomFilterDTO chartFieldCustomFilterDTO : OrgFieldCustomFilter) {
fieldCustomFilter.add(chartFieldCustomFilterDTO); fieldCustomFilter.add(chartFieldCustomFilterDTO);
@ -440,17 +439,28 @@ public class OracleQueryProvider extends QueryProvider {
chartFieldCustomFilterDTO.setField(datasetTableField); chartFieldCustomFilterDTO.setField(datasetTableField);
List<ChartCustomFilterItemDTO> filterItemDTOS = new ArrayList<>(); List<ChartCustomFilterItemDTO> filterItemDTOS = new ArrayList<>();
ChartCustomFilterItemDTO itemDTO = new ChartCustomFilterItemDTO(); if (pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) {
itemDTO.setTerm("le"); ChartCustomFilterItemDTO itemDTO = new ChartCustomFilterItemDTO();
itemDTO.setValue(String.valueOf(pageInfo.getGoPage() * pageInfo.getPageSize())); itemDTO.setTerm("le");
filterItemDTOS.add(itemDTO); itemDTO.setValue(String.valueOf(pageInfo.getGoPage() * pageInfo.getPageSize()));
filterItemDTOS.add(itemDTO);
}
chartFieldCustomFilterDTO.setFilter(filterItemDTOS); chartFieldCustomFilterDTO.setFilter(filterItemDTOS);
fieldCustomFilter.add(chartFieldCustomFilterDTO); fieldCustomFilter.add(chartFieldCustomFilterDTO);
if (isTable) { if (isTable) {
return "SELECT * FROM (" + sqlFix(originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize(); if (pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) {
return "SELECT * FROM (" + sqlFix(originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize();
} else {
return "SELECT * FROM (" + sqlFix(originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view)) + ") DE_RESULT_TMP ";
}
} else { } else {
return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize(); if (pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) {
return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize();
} else {
return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view)) + ") DE_RESULT_TMP ";
}
} }
} }

View File

@ -1274,7 +1274,7 @@ public class ExtractDataService {
String excelCompletion = ""; String excelCompletion = "";
for (DatasetTableField datasetTableField : datasetTableFields) { for (DatasetTableField datasetTableField : datasetTableFields) {
if (datasetTableField.getDeExtractType().equals(DeTypeConstants.DE_BINARY)) { if (datasetTableField.getDeExtractType().equals(DeTypeConstants.DE_BINARY) || datasetTableField.getType().equalsIgnoreCase("blob")) {
handleBinaryTypeCode.append("\n").append(handleBinaryType.replace("FIELD", datasetTableField.getDataeaseName())); handleBinaryTypeCode.append("\n").append(handleBinaryType.replace("FIELD", datasetTableField.getDataeaseName()));
} }
} }

View File

@ -15,4 +15,4 @@ ALTER TABLE `sys_task_email`
ALTER TABLE `sys_task_email` ALTER TABLE `sys_task_email`
MODIFY COLUMN `reci_users` longtext NULL COMMENT '接收人账号' AFTER `conditions`; MODIFY COLUMN `reci_users` longtext NULL COMMENT '接收人账号' AFTER `conditions`;
ALTER TABLE de_driver` ADD COLUMN `surpport_versions` LONGTEXT NULL AFTER `desc`; ALTER TABLE de_driver ADD COLUMN `surpport_versions` LONGTEXT NULL AFTER `desc`;

View File

@ -14,10 +14,10 @@ public enum DatasourceTypes {
ds_doris("ds_doris", "Doris", "`", "`", "'", "'", "characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null, true, DatabaseClassification.OLAP, ""), ds_doris("ds_doris", "Doris", "`", "`", "'", "'", "characterEncoding=UTF-8&connectTimeout=5000&useSSL=false&allowPublicKeyRetrieval=true", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null, true, DatabaseClassification.OLAP, ""),
pg("pg", "PostgreSQL", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null, true, DatabaseClassification.OLTP, "12,13,14,15,16"), pg("pg", "PostgreSQL", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null, true, DatabaseClassification.OLTP, "12,13,14,15,16"),
sqlServer("sqlServer", "SQL Server", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null, true, DatabaseClassification.OLTP, "13141516"), sqlServer("sqlServer", "SQL Server", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null, true, DatabaseClassification.OLTP, "13141516"),
oracle("oracle", "Oracle", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, Arrays.asList("Default", "GBK", "BIG5", "ISO-8859-1", "UTF-8", "UTF-16", "CP850", "EUC_JP", "EUC_KR", "US7ASCII", "AL32UTF8"), Arrays.asList("Default", "GBK", "UTF-8"), true, DatabaseClassification.OLTP, "89101112"), oracle("oracle", "Oracle", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, Arrays.asList("Default", "GBK", "BIG5", "ISO-8859-1", "UTF-8", "UTF-16", "CP850", "EUC_JP", "EUC_KR", "US7ASCII", "AL32UTF8"), Arrays.asList("Default", "GBK", "UTF-8"), true, DatabaseClassification.OLTP, "8,9,10,11,12"),
mongo("mongo", "MongoDB", "`", "`", "\"", "\"", "rebuildschema=true&authSource=admin", true, DatasourceCalculationMode.DIRECT, null, null, true, DatabaseClassification.OLTP, "3,4"), mongo("mongo", "MongoDB", "`", "`", "\"", "\"", "rebuildschema=true&authSource=admin", true, DatasourceCalculationMode.DIRECT, null, null, true, DatabaseClassification.OLTP, "3,4"),
ck("ck", "ClickHouse", "`", "`", "", "", "", true, DatasourceCalculationMode.DIRECT, null, null, true, DatabaseClassification.OLAP, "18,19,20,21,22,23"), ck("ck", "ClickHouse", "`", "`", "", "", "", true, DatasourceCalculationMode.DIRECT, null, null, true, DatabaseClassification.OLAP, "18,19,20,21,22,23"),
db2("db2", "Db2", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null, true, DatabaseClassification.OLTP, "9101112"), db2("db2", "Db2", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null, true, DatabaseClassification.OLTP, "9,10,11,12"),
redshift("redshift", "AWS Redshift", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT, null, null, true, DatabaseClassification.DL, ""), redshift("redshift", "AWS Redshift", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT, null, null, true, DatabaseClassification.DL, ""),
es("es", "Elasticsearch", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT, null, null, false, DatabaseClassification.OLAP, ""), es("es", "Elasticsearch", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT, null, null, false, DatabaseClassification.OLAP, ""),
api("api", "API", "\"", "\"", "\"", "\"", "rebuildschema=true&authSource=admin", true, DatasourceCalculationMode.SYNC, null, null, false, DatabaseClassification.OTHER, ""), api("api", "API", "\"", "\"", "\"", "\"", "rebuildschema=true&authSource=admin", true, DatasourceCalculationMode.SYNC, null, null, false, DatabaseClassification.OTHER, ""),