From f08042998e27838ee632ed3ddb33cdeadea548db Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 4 Jan 2023 16:28:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86sql=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=88=86=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/provider/query/ck/CKQueryProvider.java | 2 +- .../java/io/dataease/provider/query/db2/Db2QueryProvider.java | 2 +- .../io/dataease/provider/query/hive/HiveQueryProvider.java | 2 +- .../dataease/provider/query/impala/ImpalaQueryProvider.java | 2 +- .../io/dataease/provider/query/mysql/MysqlQueryProvider.java | 3 ++- .../dataease/provider/query/oracle/OracleQueryProvider.java | 2 +- .../java/io/dataease/provider/query/pg/PgQueryProvider.java | 2 +- .../provider/query/redshift/RedshiftQueryProvider.java | 4 ++-- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java index cb6d9dae10..71c0b6ba97 100644 --- a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java @@ -824,7 +824,7 @@ public class CKQueryProvider extends QueryProvider { if(isTable){ return "SELECT COUNT(*) from " + String.format(CKConstants.KEYWORD_TABLE, sql); }else { - return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } 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 21842dee7e..a0940c08ab 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 @@ -815,7 +815,7 @@ public class Db2QueryProvider extends QueryProvider { schema = String.format(Db2Constants.KEYWORD_TABLE, schema); return "SELECT COUNT(*) from " + schema + "." + String.format(Db2Constants.KEYWORD_TABLE, sql); } else { - return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } diff --git a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java index 77ecd69bab..f5e1ed62a0 100644 --- a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java @@ -774,7 +774,7 @@ public class HiveQueryProvider extends QueryProvider { if(isTable){ return "SELECT COUNT(*) from " + String.format(HiveConstants.KEYWORD_TABLE, sql); }else { - return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } diff --git a/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java index 7229e15ee5..fbdcfb0a8a 100644 --- a/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java @@ -772,7 +772,7 @@ public class ImpalaQueryProvider extends QueryProvider { if(isTable){ return "SELECT COUNT(*) from " + String.format(ImpalaConstants.KEYWORD_TABLE, sql); }else { - return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index 2b8d8ff350..d7bc42a7f2 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -815,7 +815,7 @@ public class MysqlQueryProvider extends QueryProvider { if(isTable){ return "SELECT COUNT(*) from " + String.format(MySQLConstants.KEYWORD_TABLE, sql); }else { - return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } @@ -1123,6 +1123,7 @@ public class MysqlQueryProvider extends QueryProvider { } private String sqlFix(String sql) { + sql = sql.trim(); if (sql.lastIndexOf(";") == (sql.length() - 1)) { sql = sql.substring(0, sql.length() - 1); } 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 11c5fd238b..e5dada23c6 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 @@ -866,7 +866,7 @@ public class OracleQueryProvider extends QueryProvider { schema = String.format(OracleConstants.KEYWORD_TABLE, schema); return "SELECT COUNT(*) from " + schema + "." + String.format(OracleConstants.KEYWORD_TABLE, sql); } else { - return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } 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 a3d9e9fe43..6acb16b903 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 @@ -806,7 +806,7 @@ public class PgQueryProvider extends QueryProvider { String tableWithSchema = String.format(PgConstants.KEYWORD_TABLE, schema) + "." + String.format(PgConstants.KEYWORD_TABLE, sql); return "SELECT COUNT(*) from " + tableWithSchema; }else { - return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } 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 d0e2d0b549..61aec7505f 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 @@ -813,7 +813,7 @@ public class RedshiftQueryProvider extends QueryProvider { String tableWithSchema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema) + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, sql); return "SELECT COUNT(*) from " + String.format(ImpalaConstants.KEYWORD_TABLE, tableWithSchema); }else { - return "SELECT COUNT(*) from ( " + sql + " ) DE_COUNT_TEMP"; + return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } @@ -826,7 +826,7 @@ public class RedshiftQueryProvider extends QueryProvider { }).toArray(String[]::new); if (ds != null) { String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); - String tableWithSchema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema) + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, table); + String tableWithSchema = String.format(RedshiftConstants.KEYWORD_TABLE, schema) + "." + String.format(RedshiftConstants.KEYWORD_TABLE, table); return MessageFormat.format("SELECT {0} FROM {1} LIMIT DE_PAGE_SIZE OFFSET DE_OFFSET ", StringUtils.join(array, ","), tableWithSchema); } else { return MessageFormat.format("SELECT {0} FROM {1} LIMIT DE_PAGE_SIZE OFFSET DE_OFFSET ", StringUtils.join(array, ","), table);