Merge pull request #7902 from dataease/pr@dev@fix_sql

fix(数据集): sql数据集设置主键时,判断是否有效
This commit is contained in:
taojinlong 2024-01-30 12:30:01 +08:00 committed by GitHub
commit bfe33365bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 15 additions and 4 deletions

View File

@ -1303,6 +1303,15 @@ public class DataSetTableService {
List<TableField> fields = result.get("fieldList");
String[] fieldArray = fields.stream().map(TableField::getFieldName).toArray(String[]::new);
checkIsRepeat(fieldArray);
if(!realData && dataTableInfo.isSetKey()){
for (String key : dataTableInfo.getKeys()) {
if(!fields.stream().map(TableField::getFieldName).collect(Collectors.toList()).contains(key)){
DataEaseException.throwException(Translator.get("i18n_dont_contian_key") + "" + key);
}
}
}
List<Map<String, Object>> jsonArray = new ArrayList<>();
if (CollectionUtils.isNotEmpty(data)) {
jsonArray = data.stream().map(ele -> {

View File

@ -503,8 +503,7 @@ public class ExtractDataService {
Datasource engine = engineService.getDeEngine();
DorisConfiguration dorisConfiguration = new Gson().fromJson(engine.getConfiguration(), DorisConfiguration.class);
String columns = datasetTableFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.joining(","));
String columns = "dataease_uuid, " + datasetTableFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.joining(","));
String dataFile = null;
String script = null;
String streamLoadScript = "";

View File

@ -94,6 +94,7 @@ i18n_sql_delete_not_matching=The data column of incremental delete SQL does not
i18n_cst_ds_tb_or_field_deleted=Custom dataset union data is deleted or field changed,can not display
i18n_no_all_delete_privilege_folder=This folder have sources which have no manage or view privilege,Can Not Be Deleted.
i18n_excel_field_repeat=Duplicate fields exist:
i18n_dont_contian_key=The current SQL doesn't include this key:
i18n_schema_is_empty=Database schema is empty
\u7AD9\u5185\u6D88\u606F=Messages Center
\u6240\u6709\u6D88\u606F=All Messages

View File

@ -94,6 +94,7 @@ i18n_sql_delete_not_matching=\u589E\u91CF\u5220\u9664 SQL \u7684\u6570\u636E\u52
i18n_cst_ds_tb_or_field_deleted=\u81EA\u5B9A\u4E49\u6570\u636E\u96C6\u6240\u5173\u8054\u6570\u636E\u88AB\u5220\u9664\u6216\u5B57\u6BB5\u53D1\u751F\u53D8\u5316\uFF0C\u65E0\u6CD5\u6B63\u5E38\u663E\u793A
i18n_no_all_delete_privilege_folder=\u8BE5\u76EE\u5F55\u4E0B\u5B58\u5728\u6CA1\u6709\u7BA1\u7406\u6743\u9650\u6216\u67E5\u770B\u6743\u9650\u7684\u8D44\u6E90\uFF0C\u65E0\u6CD5\u5220\u9664
i18n_excel_field_repeat=\u5B58\u5728\u91CD\u590D\u5B57\u6BB5\uFF1A
i18n_dont_contian_key=\u5f53\u524d\u7684sql\u4e0d\u5305\u542b\u8fd9\u4e2a\u952e\uff1a
i18n_schema_is_empty=\u6570\u636E\u5E93 Schema \u4E3A\u7A7A
\u7AD9\u5185\u6D88\u606F=\u6D88\u606F\u4E2D\u5FC3
\u6240\u6709\u6D88\u606F=\u6240\u6709\u6D88\u606F

View File

@ -94,6 +94,7 @@ i18n_sql_delete_not_matching=\u589E\u91CF\u522A\u9664 sql \u7684\u6578\u64DA\u52
i18n_cst_ds_tb_or_field_deleted=\u81EA\u5B9A\u7FA9\u6578\u64DA\u96C6\u6240\u95DC\u806F\u6578\u64DA\u88AB\u522A\u9664\u6216\u5B57\u6BB5\u767C\u751F\u8B8A\u5316\uFF0C\u7121\u6CD5\u6B63\u5E38\u986F\u793A
i18n_no_all_delete_privilege_folder=\u8A72\u76EE\u9304\u4E0B\u5B58\u5728\u6C92\u6709\u7BA1\u7406\u6B0A\u9650\u6216\u67E5\u770B\u6B0A\u9650\u7684\u8CC7\u6E90\uFF0C\u7121\u6CD5\u522A\u9664
i18n_excel_field_repeat=\u5B58\u5728\u91CD\u5FA9\u5B57\u6BB5\uFF1A
i18n_dont_contian_key=\u7576\u524d\u7684sql\u4e0d\u5305\u542b\u9019\u500b\u9375\uff1a
i18n_schema_is_empty=\u6578\u64DA\u5EAB Schema \u70BA\u7A7A
\u7AD9\u5185\u6D88\u606F=\u6D88\u606F\u4E2D\u5FC3
\u6240\u6709\u6D88\u606F=\u6240\u6709\u6D88\u606F

View File

@ -228,7 +228,7 @@
<el-table-column
property="key"
:label="$t('dataset.change_to_key')"
v-if="table.mode === 1 && (table.type === 'db' || table.mode === 'sql')"
v-if="table.mode === 1 && (table.type === 'db' || table.type === 'sql')"
>
<template slot-scope="scope">
<el-select v-model="scope.row.key" @change="saveKey(scope.row)" >
@ -583,7 +583,7 @@
<el-table-column
property="key"
:label="$t('dataset.change_to_key')"
v-if="table.mode === 1 && (table.type === 'db' || table.mode === 'sql')"
v-if="table.mode === 1 && (table.type === 'db' || table.type === 'sql')"
>
<template slot-scope="scope">
<el-select v-model="scope.row.key" @change="saveKey(scope.row)" >