diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/ExpressionNormalization.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/ExpressionNormalization.java index 360cdbf87d..ba0c3e6b6f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/ExpressionNormalization.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/ExpressionNormalization.java @@ -39,8 +39,10 @@ import java.util.List; * normalize expression of plan rule set. */ public class ExpressionNormalization extends ExpressionRewrite { - + // we should run supportJavaDateFormatter before foldConstantRule or be will fold + // from_unixtime(timestamp, 'yyyyMMdd') to 'yyyyMMdd' public static final List NORMALIZE_REWRITE_RULES = ImmutableList.of( + SupportJavaDateFormatter.INSTANCE, NormalizeBinaryPredicatesRule.INSTANCE, BetweenToCompoundRule.INSTANCE, InPredicateToEqualToRule.INSTANCE, diff --git a/regression-test/suites/nereids_syntax_p0/test_time_convert.groovy b/regression-test/suites/nereids_syntax_p0/test_time_convert.groovy new file mode 100644 index 0000000000..48ddd91d00 --- /dev/null +++ b/regression-test/suites/nereids_syntax_p0/test_time_convert.groovy @@ -0,0 +1,25 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_time_convert_nereids") { + sql "set enable_nereids_planner=true" + sql "set enable_fold_constant_by_be=true" + test { + sql "select from_unixtime(1249488000, 'yyyyMMdd')" + result([['20090806']]) + } +} \ No newline at end of file