From 652d6c57c03e25a0f957a5c08534ff6949c93fe7 Mon Sep 17 00:00:00 2001 From: zy-kkk Date: Tue, 17 Oct 2023 02:10:28 -0500 Subject: [PATCH] [fix](jdbc catalog) fix handle oracle date format (#25487) --- .../org/apache/doris/planner/external/jdbc/JdbcScanNode.java | 3 +-- .../data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out | 3 +++ .../external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/external/jdbc/JdbcScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/external/jdbc/JdbcScanNode.java index 614b71484c..3295284da9 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/external/jdbc/JdbcScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/external/jdbc/JdbcScanNode.java @@ -32,7 +32,6 @@ import org.apache.doris.analysis.TupleDescriptor; import org.apache.doris.catalog.Column; import org.apache.doris.catalog.Env; import org.apache.doris.catalog.JdbcTable; -import org.apache.doris.catalog.Type; import org.apache.doris.catalog.external.JdbcExternalTable; import org.apache.doris.common.AnalysisException; import org.apache.doris.common.Config; @@ -364,7 +363,7 @@ public class JdbcScanNode extends ExternalScanNode { private static String handleOracleDateFormat(Expr expr) { if (expr.isConstant() - && (expr.getType().equals(Type.DATETIME) || expr.getType().equals(Type.DATETIMEV2))) { + && (expr.getType().isDatetime() || expr.getType().isDatetimeV2())) { return "to_date('" + expr.getStringValue() + "', 'yyyy-mm-dd hh24:mi:ss')"; } return expr.toMySql(); diff --git a/regression-test/data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out b/regression-test/data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out index ad2572ddb3..1be0feb1a9 100644 --- a/regression-test/data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out +++ b/regression-test/data/external_table_p0/jdbc/test_oracle_jdbc_catalog.out @@ -99,6 +99,9 @@ 1 2022-01-21T05:23:01 \N \N 2 2022-11-12T20:32:56 \N \N +-- !date7 -- +3 \N 2019-11-12T20:33:57.999 \N \N \N \N \N + -- !test_insert1 -- doris1 18 diff --git a/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy b/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy index 79e4367793..77d3015239 100644 --- a/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy +++ b/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy @@ -80,6 +80,7 @@ suite("test_oracle_jdbc_catalog", "p0,external,oracle,external_docker,external_d order_qt_date4 """ select * from TEST_DATE where (T1 > '2022-01-21 00:00:00' and T1 < '2022-01-22 00:00:00') or (T1 > '2022-01-20 00:00:00' and T1 < '2022-01-23 00:00:00'); """ order_qt_date5 """ select * from TEST_DATE where T1 < '2022-01-22 00:00:00' or T1 = '2022-01-21 05:23:01'; """ order_qt_date6 """ select * from TEST_DATE where (T1 < '2022-01-22 00:00:00' or T1 > '2022-01-20 00:00:00') and (T1 < '2022-01-23 00:00:00' or T1 > '2022-01-19 00:00:00'); """ + order_qt_date7 """select * from TEST_TIMESTAMP where T2 < str_to_date('2020-12-21 12:34:56', '%Y-%m-%d %H:%i:%s');""" // The result of TEST_RAW will change // So instead of qt, we're using sql here.