From 7ddaaca36c66648145cd32943d3c638abd01aab1 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 28 Feb 2022 16:25:44 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20Elasticsearch=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=20nested=20=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/datasource/EsProvider.java | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/datasource/EsProvider.java b/backend/src/main/java/io/dataease/provider/datasource/EsProvider.java index 411b1b13f8..eb055a45b4 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/EsProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/EsProvider.java @@ -99,11 +99,18 @@ public class EsProvider extends DatasourceProvider { @Override public List getTableFileds(DatasourceRequest datasourceRequest) throws Exception { - QueryProvider qp = ProviderFactory.getQueryProvider(datasourceRequest.getDatasource().getType()); - datasourceRequest.setQuery(qp.convertTableToSql(datasourceRequest.getTable(), datasourceRequest.getDatasource())); - return fetchResultField(datasourceRequest); + datasourceRequest.setQuery("desc " + datasourceRequest.getTable()); + List tableFields = new ArrayList<>(); + try { + String response = exexQuery(datasourceRequest, datasourceRequest.getQuery(), "?format=json"); + tableFields = fetchResultField4Table(response); + } catch (Exception e) { + DataEaseException.throwException(e); + } + return tableFields; } + private List fetchResult(String response) throws Exception { EsReponse esReponse = new Gson().fromJson(response, EsReponse.class); return fetchResult(esReponse); @@ -166,6 +173,26 @@ public class EsProvider extends DatasourceProvider { return fieldList; } + private List fetchResultField4Table(String response) throws Exception { + List fieldList = new ArrayList<>(); + EsReponse esReponse = new Gson().fromJson(response, EsReponse.class); + if (esReponse.getError() != null) { + throw new Exception(esReponse.getError().getReason()); + } + + for (String[] row : esReponse.getRows()) { + if(!row[1].equalsIgnoreCase("STRUCT")){ + TableField field = new TableField(); + field.setFieldName(row[0]); + field.setRemarks(row[0]); + field.setFieldType(row[2]); + field.setFieldSize(EsQueryProvider.transFieldTypeSize(row[2])); + fieldList.add(field); + } + } + return fieldList; + } + @Override public Map fetchResultAndField(DatasourceRequest datasourceRequest) throws Exception { Map result = new HashMap<>(); From 59e5aadee67894ea715287d881b6fa445570eda6 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 28 Feb 2022 18:45:59 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20mongo=20=E6=8B=89=E5=8F=96=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E6=9C=80=E6=96=B0=E7=9A=84collection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/provider/datasource/JdbcProvider.java | 3 +++ frontend/src/views/system/datasource/form.vue | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index ea395af602..f2bd003b0e 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -403,6 +403,9 @@ public class JdbcProvider extends DatasourceProvider { } private Connection getConnectionFromPool(DatasourceRequest datasourceRequest) throws Exception { + if(datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.mongo.name())){ + return getConnection(datasourceRequest); + } DruidDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); if (dataSource == null) { handleDatasource(datasourceRequest, "add"); diff --git a/frontend/src/views/system/datasource/form.vue b/frontend/src/views/system/datasource/form.vue index 05ad8a15f5..53554473a9 100644 --- a/frontend/src/views/system/datasource/form.vue +++ b/frontend/src/views/system/datasource/form.vue @@ -253,7 +253,7 @@ - + Date: Mon, 28 Feb 2022 18:51:24 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E8=AF=86=E5=88=AB=20pg=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/provider/query/pg/PgQueryProvider.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java index 55eebb6755..0c63ba51ab 100644 --- a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java @@ -86,8 +86,6 @@ public class PgQueryProvider extends QueryProvider { return DeTypeConstants.DE_FLOAT;// 浮点 case "TINYINT": return DeTypeConstants.DE_BOOL;// 布尔 - case "bytea": - return DeTypeConstants.DE_BINARY;// 二进制 default: return DeTypeConstants.DE_STRING; } From af7b9dab0950ab6e3b4776b787ebb5c4e568f1e6 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 28 Feb 2022 23:01:29 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E8=AF=86=E5=88=AB=20pg=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/provider/query/pg/PgQueryProvider.java | 2 ++ .../io/dataease/service/dataset/DataSetTableService.java | 4 ++-- frontend/src/views/dataset/data/FieldEdit.vue | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java index 0c63ba51ab..55eebb6755 100644 --- a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java @@ -86,6 +86,8 @@ public class PgQueryProvider extends QueryProvider { return DeTypeConstants.DE_FLOAT;// 浮点 case "TINYINT": return DeTypeConstants.DE_BOOL;// 布尔 + case "bytea": + return DeTypeConstants.DE_BINARY;// 二进制 default: return DeTypeConstants.DE_STRING; } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index e63fe1f17a..4d95d8f4bf 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -1629,7 +1629,7 @@ public class DataSetTableService { datasetTableField.setDeExtractType(transFieldType(filed.getFieldType())); } else { Integer fieldType = qp.transFieldType(filed.getFieldType()); - datasetTableField.setDeType(fieldType == 4 ? 2 : fieldType); + datasetTableField.setDeType(fieldType == 4 ? 2 : (fieldType == 6 ? 0 : fieldType)); datasetTableField.setDeExtractType(fieldType); } datasetTableField.setSize(filed.getFieldSize()); @@ -1637,7 +1637,7 @@ public class DataSetTableService { datasetTableField.setColumnIndex(i); datasetTableField.setLastSyncTime(syncTime); datasetTableField.setExtField(0); - datasetTableField.setGroupType(datasetTableField.getDeType() < 2 ? "d" : "q"); + datasetTableField.setGroupType((datasetTableField.getDeType() < 2 || datasetTableField.getDeType() == 6) ? "d" : "q"); } dataSetTableFieldsService.save(datasetTableField); } diff --git a/frontend/src/views/dataset/data/FieldEdit.vue b/frontend/src/views/dataset/data/FieldEdit.vue index c44b889b9d..4358303629 100644 --- a/frontend/src/views/dataset/data/FieldEdit.vue +++ b/frontend/src/views/dataset/data/FieldEdit.vue @@ -72,8 +72,8 @@ - - + + {{ $t('dataset.text') }} @@ -95,8 +95,8 @@