From 6a30bd496ac591546919fc9789c6bab8a740b8f0 Mon Sep 17 00:00:00 2001 From: junjie Date: Wed, 29 Dec 2021 11:55:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20sql=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/query/ck/CKQueryProvider.java | 20 ++++++++++++++++++ .../provider/query/db2/Db2QueryProvider.java | 20 ++++++++++++++++++ .../query/doris/DorisQueryProvider.java | 20 ++++++++++++++++++ .../provider/query/es/EsQueryProvider.java | 20 ++++++++++++++++++ .../query/hive/HiveQueryProvider.java | 20 ++++++++++++++++++ .../query/mysql/MysqlQueryProvider.java | 20 ++++++++++++++++++ .../query/oracle/OracleQueryProvider.java | 20 ++++++++++++++++++ .../provider/query/pg/PgQueryProvider.java | 21 +++++++++++++++++++ .../query/redshift/RedshiftQueryProvider.java | 20 ++++++++++++++++++ .../sqlserver/SqlserverQueryProvider.java | 20 ++++++++++++++++++ 10 files changed, 201 insertions(+) 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 138a9feb8d..c1165b2535 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 @@ -795,6 +795,16 @@ public class CKQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(CKConstants.toFloat64, originName); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(CKConstants.toInt32, String.format(CKConstants.toDateTime, originName)) + "*1000"; + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -892,6 +902,16 @@ public class CKQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(CKConstants.toFloat64, originName); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(CKConstants.toInt32, String.format(CKConstants.toDateTime, originName)) + "*1000"; + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } 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 7e2528444b..3e2bb00773 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 @@ -763,6 +763,16 @@ public class Db2QueryProvider extends QueryProvider { if (field.getDeExtractType() == DeTypeConstants.DE_TIME) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(Db2Constants.CAST, originName, Db2Constants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(Db2Constants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -850,6 +860,16 @@ public class Db2QueryProvider extends QueryProvider { if (field.getDeExtractType() == DeTypeConstants.DE_TIME) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(Db2Constants.CAST, originName, Db2Constants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(Db2Constants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } diff --git a/backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java index c49c4eb381..f3f4013fe9 100644 --- a/backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java @@ -775,6 +775,16 @@ public class DorisQueryProvider extends QueryProvider { String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000"; whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT); } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(DorisConstants.UNIX_TIMESTAMP, originName) + "*1000"; + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else if (field.getDeType() == 0) { whereName = String.format(DorisConstants.CAST, originName, DorisConstants.VARCHAR); } else { @@ -864,6 +874,16 @@ public class DorisQueryProvider extends QueryProvider { } } else if (field.getDeType() == 0) { whereName = String.format(DorisConstants.CAST, originName, DorisConstants.VARCHAR); + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(DorisConstants.UNIX_TIMESTAMP, originName) + "*1000"; + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } diff --git a/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java index f7f752a9c6..49670f34bc 100644 --- a/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java @@ -792,6 +792,16 @@ public class EsQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(EsSqlLConstants.CAST, originName, "double"); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(EsSqlLConstants.CAST, originName, "bigint"); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -873,6 +883,16 @@ public class EsQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(EsSqlLConstants.CAST, originName, "double"); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(EsSqlLConstants.CAST, originName, "bigint"); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } 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 25f4b095a9..813a98476b 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 @@ -756,6 +756,16 @@ public class HiveQueryProvider extends QueryProvider { if (field.getDeExtractType() == DeTypeConstants.DE_TIME) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(HiveConstants.CAST, originName, HiveConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(HiveConstants.UNIX_TIMESTAMP, originName) + "*1000"; + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -838,6 +848,16 @@ public class HiveQueryProvider extends QueryProvider { if (field.getDeExtractType() == DeTypeConstants.DE_TIME) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(HiveConstants.CAST, originName, HiveConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(HiveConstants.UNIX_TIMESTAMP, originName) + "*1000"; + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } 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 794cb65940..8050c6ebf5 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 @@ -760,6 +760,16 @@ public class MysqlQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(MySQLConstants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -841,6 +851,16 @@ public class MysqlQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(MySQLConstants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } 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 a70f9bc33f..3fc25eb97d 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 @@ -812,6 +812,16 @@ public class OracleQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(OracleConstants.UNIX_TIMESTAMP, originName) + "*1000"; + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -898,6 +908,16 @@ public class OracleQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(OracleConstants.UNIX_TIMESTAMP, originName) + "*1000"; + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } 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 157acc46a0..222db8e73e 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 @@ -15,6 +15,7 @@ import io.dataease.dto.datasource.JdbcConfiguration; import io.dataease.dto.sqlObj.SQLObj; import io.dataease.provider.query.QueryProvider; import io.dataease.provider.query.SQLConstants; +import io.dataease.provider.query.oracle.OracleConstants; import io.dataease.provider.query.sqlserver.SqlServerSQLConstants; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -787,6 +788,16 @@ public class PgQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(PgConstants.CAST, originName, PgConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(PgConstants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -869,6 +880,16 @@ public class PgQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(PgConstants.CAST, originName, PgConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(PgConstants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } 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 9737c22050..b3f54f14ff 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 @@ -728,6 +728,16 @@ public class RedshiftQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(PgConstants.CAST, originName, PgConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(PgConstants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -806,6 +816,16 @@ public class RedshiftQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(PgConstants.CAST, originName, PgConstants.DEFAULT_FLOAT_FORMAT); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(PgConstants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } 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 d93f8ef27c..3973a697e1 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 @@ -821,6 +821,16 @@ public class SqlserverQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(SqlServerSQLConstants.CONVERT, SqlServerSQLConstants.DEFAULT_FLOAT_FORMAT, originName); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(SqlServerSQLConstants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } @@ -903,6 +913,16 @@ public class SqlserverQueryProvider extends QueryProvider { if (field.getDeExtractType() == 1) { whereName = originName; } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(SqlServerSQLConstants.CONVERT, SqlServerSQLConstants.DEFAULT_FLOAT_FORMAT, originName); + } + if (field.getDeExtractType() == 1) { + whereName = String.format(SqlServerSQLConstants.UNIX_TIMESTAMP, originName); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { + whereName = originName; + } } else { whereName = originName; } From 94c8d0467a0eef12928b36613442b7206a111bae Mon Sep 17 00:00:00 2001 From: junjie Date: Wed, 29 Dec 2021 11:56:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20sql=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/dataease/provider/query/pg/PgQueryProvider.java | 1 - 1 file changed, 1 deletion(-) 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 222db8e73e..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 @@ -15,7 +15,6 @@ import io.dataease.dto.datasource.JdbcConfiguration; import io.dataease.dto.sqlObj.SQLObj; import io.dataease.provider.query.QueryProvider; import io.dataease.provider.query.SQLConstants; -import io.dataease.provider.query.oracle.OracleConstants; import io.dataease.provider.query.sqlserver.SqlServerSQLConstants; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils;