This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new bdbce77227 [fix](nereids) cast left child of TimestampArithmetic to
wrong type in BindFunction (#12423)
bdbce77227 is described below
commit bdbce77227d16a1fe731dc4aa55b108f291fd24d
Author: Kikyou1997 <[email protected]>
AuthorDate: Wed Sep 7 20:32:47 2022 +0800
[fix](nereids) cast left child of TimestampArithmetic to wrong type in
BindFunction (#12423)
---
.../main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java | 2 +-
.../org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java
index 567d2169ff..d1a4a4cd2c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java
@@ -175,7 +175,7 @@ public class BindFunction implements AnalysisRuleFactory {
} catch (Exception e) {
// ignore
}
- if (!left.getDataType().isDateType() &&
arithmetic.getTimeUnit().isDateTimeUnit()) {
+ if (!left.getDataType().isDateType() &&
!arithmetic.getTimeUnit().isDateTimeUnit()) {
left = arithmetic.left().castTo(DateType.INSTANCE);
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
index ec5c5ce02f..c288698451 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
@@ -36,6 +36,7 @@ import java.util.List;
* Describes the addition and subtraction of time units from timestamps.
* Arithmetic expressions on timestamps are syntactic sugar.
* They are executed as function call exprs in the BE.
+ * Example: '1996-01-01' + INTERVAL '3' month;
* TODO: we need to rethink this, and maybe need to add a new type of Interval
then implement IntervalLiteral as others
*/
public class TimestampArithmetic extends Expression implements
BinaryExpression {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]