From 3a8e09f383400ab5d97e43761470a5467bf62a2b Mon Sep 17 00:00:00 2001 From: Yulei-Yang Date: Wed, 13 Mar 2024 19:16:48 +0800 Subject: [PATCH] [fix](iceberg) fix error when query iceberg table using date predicate --- .../src/main/java/org/apache/doris/analysis/DateLiteral.java | 4 ++++ .../org/apache/doris/datasource/iceberg/IcebergUtils.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java index 37171b70facd18..39146aeb4fd871 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java @@ -643,6 +643,10 @@ public boolean isDateType() { return this.type.isDate() || this.type.isDateV2(); } + public boolean isDateTimeType() { + return this.type.isDatetime() || this.type.isDatetimeV2(); + } + @Override public String getStringValue() { char[] dateTimeChars = new char[26]; // Enough to hold "YYYY-MM-DD HH:MM:SS.mmmmmm" diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java index 089da30f7c430f..aba7167eda06c2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java @@ -229,7 +229,7 @@ private static Object extractDorisLiteral(Expr expr) { return boolLiteral.getValue(); } else if (expr instanceof DateLiteral) { DateLiteral dateLiteral = (DateLiteral) expr; - if (dateLiteral.isDateType()) { + if (dateLiteral.isDateType() || dateLiteral.isDateTimeType()) { return dateLiteral.getStringValue(); } else { return dateLiteral.unixTimestamp(TimeUtils.getTimeZone()) * MILLIS_TO_NANO_TIME;