From 6a717c94af80ce757147ae5f7b32d4b430d327a9 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 29 Sep 2022 17:31:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E9=9B=86=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/query/db2/Db2QueryProvider.java | 8 ++++++++ .../provider/query/oracle/OracleQueryProvider.java | 7 +++++++ .../dataease/provider/query/pg/PgQueryProvider.java | 7 +++++++ .../query/redshift/RedshiftQueryProvider.java | 12 ++++++++---- .../query/sqlserver/SqlserverQueryProvider.java | 7 +++++++ .../service/dataset/DataSetTableService.java | 3 +-- 6 files changed, 38 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java index 9565f069c1..b411be4b7d 100644 --- a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java @@ -18,6 +18,7 @@ import io.dataease.plugins.common.dto.sqlObj.SQLObj; import io.dataease.plugins.common.request.chart.ChartExtFilterRequest; import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO; import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem; +import io.dataease.plugins.datasource.entity.JdbcConfiguration; import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.Utils; import org.apache.commons.collections4.CollectionUtils; @@ -1334,4 +1335,11 @@ public class Db2QueryProvider extends QueryProvider { return sql; } } + + @Override + public String sqlForPreview(String table, Datasource ds){ + String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); + schema = String.format(Db2Constants.KEYWORD_TABLE, schema); + return "SELECT * FROM " + schema + "." + String.format(Db2Constants.KEYWORD_TABLE, table); + } } diff --git a/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java index e1c882bdcb..91e3a9db3c 100644 --- a/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java @@ -1370,4 +1370,11 @@ public class OracleQueryProvider extends QueryProvider { return sql; } } + + @Override + public String sqlForPreview(String table, Datasource ds){ + String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); + schema = String.format(OracleConstants.KEYWORD_TABLE, schema); + return "SELECT * FROM " + schema + "." + String.format(OracleConstants.KEYWORD_TABLE, table); + } } 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 ce507014be..8bc912b45b 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 @@ -1279,4 +1279,11 @@ public class PgQueryProvider extends QueryProvider { return sql; } } + + @Override + public String sqlForPreview(String table, Datasource ds){ + String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); + schema = String.format(PgConstants.KEYWORD_TABLE, schema); + return "SELECT * FROM " + schema + "." + String.format(PgConstants.KEYWORD_TABLE, table); + } } diff --git a/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java index 33491d6f46..b8ac9749d6 100644 --- a/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java @@ -7,10 +7,7 @@ import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; import io.dataease.plugins.common.constants.DeTypeConstants; -import io.dataease.plugins.common.constants.datasource.PgConstants; -import io.dataease.plugins.common.constants.datasource.RedshiftConstants; -import io.dataease.plugins.common.constants.datasource.SQLConstants; -import io.dataease.plugins.common.constants.datasource.SqlServerSQLConstants; +import io.dataease.plugins.common.constants.datasource.*; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; import io.dataease.plugins.common.dto.chart.ChartViewFieldDTO; @@ -1196,4 +1193,11 @@ public class RedshiftQueryProvider extends QueryProvider { return sql; } } + + @Override + public String sqlForPreview(String table, Datasource ds){ + String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); + schema = String.format(PgConstants.KEYWORD_TABLE, schema); + return "SELECT * FROM " + schema + "." + String.format(PgConstants.KEYWORD_TABLE, table); + } } diff --git a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java index 2ea6ff8c10..62513c5442 100644 --- a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java @@ -1324,4 +1324,11 @@ public class SqlserverQueryProvider extends QueryProvider { } return originField; } + + @Override + public String sqlForPreview(String table, Datasource ds){ + String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); + schema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema); + return "SELECT * FROM " + schema + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, table); + } } 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 1486fc545f..c4a7a80f27 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -1130,9 +1130,8 @@ public class DataSetTableService { DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); DataTableInfoDTO dataTableInfo = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); - String sql = "SELECT * FROM " + dataTableInfo.getTable(); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); - String sqlAsTable = qp.createSQLPreview(sql, null); + String sqlAsTable = qp.createSQLPreview(qp.sqlForPreview(dataTableInfo.getTable(), ds), null); datasourceRequest.setQuery(sqlAsTable); datasourceRequest.setTable(dataTableInfo.getTable()); Map result = datasourceProvider.fetchResultAndField(datasourceRequest);