diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java index baee16adaa..0074ac03db 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java @@ -90,16 +90,13 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Cos; import org.apache.doris.nereids.trees.expressions.functions.scalar.CountEqual; import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentDate; import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentTime; -import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentTimestamp; import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentUser; -import org.apache.doris.nereids.trees.expressions.functions.scalar.Curtime; import org.apache.doris.nereids.trees.expressions.functions.scalar.Database; import org.apache.doris.nereids.trees.expressions.functions.scalar.Date; import org.apache.doris.nereids.trees.expressions.functions.scalar.DateDiff; import org.apache.doris.nereids.trees.expressions.functions.scalar.DateFormat; import org.apache.doris.nereids.trees.expressions.functions.scalar.DateTrunc; import org.apache.doris.nereids.trees.expressions.functions.scalar.DateV2; -import org.apache.doris.nereids.trees.expressions.functions.scalar.Day; import org.apache.doris.nereids.trees.expressions.functions.scalar.DayCeil; import org.apache.doris.nereids.trees.expressions.functions.scalar.DayFloor; import org.apache.doris.nereids.trees.expressions.functions.scalar.DayName; @@ -185,8 +182,6 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Least; import org.apache.doris.nereids.trees.expressions.functions.scalar.Left; import org.apache.doris.nereids.trees.expressions.functions.scalar.Length; import org.apache.doris.nereids.trees.expressions.functions.scalar.Ln; -import org.apache.doris.nereids.trees.expressions.functions.scalar.LocalTime; -import org.apache.doris.nereids.trees.expressions.functions.scalar.LocalTimestamp; import org.apache.doris.nereids.trees.expressions.functions.scalar.Locate; import org.apache.doris.nereids.trees.expressions.functions.scalar.Log; import org.apache.doris.nereids.trees.expressions.functions.scalar.Log10; @@ -411,21 +406,18 @@ public class BuiltinScalarFunctions implements FunctionHelper { scalar(Cos.class, "cos"), scalar(CountEqual.class, "countequal"), scalar(CurrentDate.class, "curdate", "current_date"), - scalar(CurrentTime.class, "current_time"), - scalar(CurrentTimestamp.class, "current_timestamp"), + scalar(CurrentTime.class, "curtime", "current_time"), scalar(CurrentUser.class, "current_user"), - scalar(Curtime.class, "curtime"), scalar(Database.class, "database"), scalar(Date.class, "date"), scalar(DateDiff.class, "datediff"), scalar(DateFormat.class, "date_format"), scalar(DateTrunc.class, "date_trunc"), scalar(DateV2.class, "datev2"), - scalar(Day.class, "day"), scalar(DayCeil.class, "day_ceil"), scalar(DayFloor.class, "day_floor"), scalar(DayName.class, "dayname"), - scalar(DayOfMonth.class, "dayofmonth"), + scalar(DayOfMonth.class, "day", "dayofmonth"), scalar(DayOfWeek.class, "dayofweek"), scalar(DayOfYear.class, "dayofyear"), scalar(DaysAdd.class, "days_add"), @@ -507,8 +499,6 @@ public class BuiltinScalarFunctions implements FunctionHelper { scalar(Left.class, "left"), scalar(Length.class, "length"), scalar(Ln.class, "ln"), - scalar(LocalTime.class, "localtime"), - scalar(LocalTimestamp.class, "localtimestamp"), scalar(Locate.class, "locate"), scalar(Log.class, "log"), scalar(Log10.class, "log10"), @@ -542,7 +532,7 @@ public class BuiltinScalarFunctions implements FunctionHelper { scalar(MurmurHash364.class, "murmur_hash3_64"), scalar(Negative.class, "negative"), scalar(NotNullOrEmpty.class, "not_null_or_empty"), - scalar(Now.class, "now"), + scalar(Now.class, "now", "current_timestamp", "localtime", "localtimestamp"), scalar(NullIf.class, "nullif"), scalar(NullOrEmpty.class, "null_or_empty"), scalar(Nvl.class, "ifnull", "nvl"), diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/CurrentTimestamp.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/CurrentTimestamp.java deleted file mode 100644 index 3e348ef467..0000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/CurrentTimestamp.java +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -package org.apache.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.trees.expressions.functions.AlwaysNotNullable; -import org.apache.doris.nereids.trees.expressions.functions.DateTimeWithPrecision; -import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; -import org.apache.doris.nereids.trees.expressions.functions.Nondeterministic; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; -import org.apache.doris.nereids.types.DateTimeType; -import org.apache.doris.nereids.types.DateTimeV2Type; -import org.apache.doris.nereids.types.IntegerType; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; - -import java.util.List; - -/** - * ScalarFunction 'current_timestamp'. This class is generated by GenerateFunction. - */ -public class CurrentTimestamp extends DateTimeWithPrecision - implements ExplicitlyCastableSignature, Nondeterministic, AlwaysNotNullable { - - public static final List SIGNATURES = ImmutableList.of( - FunctionSignature.ret(DateTimeType.INSTANCE).args(), - FunctionSignature.ret(DateTimeV2Type.SYSTEM_DEFAULT).args(IntegerType.INSTANCE) - ); - - /** - * constructor with 0 argument. - */ - public CurrentTimestamp() { - super("current_timestamp"); - } - - /** - * constructor with 1 argument. - */ - public CurrentTimestamp(Expression arg) { - super("current_timestamp", arg); - } - - /** - * withChildren. - */ - @Override - public CurrentTimestamp withChildren(List children) { - Preconditions.checkArgument(children.size() == 0 - || children.size() == 1); - if (children.isEmpty() && arity() == 0) { - return this; - } else { - return new CurrentTimestamp(children.get(0)); - } - } - - @Override - public List getSignatures() { - return SIGNATURES; - } - - @Override - public R accept(ExpressionVisitor visitor, C context) { - return visitor.visitCurrentTimestamp(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Curtime.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Curtime.java deleted file mode 100644 index f13f6e6f16..0000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Curtime.java +++ /dev/null @@ -1,58 +0,0 @@ -// 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. - -package org.apache.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.trees.expressions.functions.AlwaysNotNullable; -import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; -import org.apache.doris.nereids.trees.expressions.functions.Nondeterministic; -import org.apache.doris.nereids.trees.expressions.shape.LeafExpression; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; -import org.apache.doris.nereids.types.TimeType; - -import com.google.common.collect.ImmutableList; - -import java.util.List; - -/** - * ScalarFunction 'curtime'. This class is generated by GenerateFunction. - */ -public class Curtime extends ScalarFunction - implements LeafExpression, ExplicitlyCastableSignature, Nondeterministic, AlwaysNotNullable { - - public static final List SIGNATURES = ImmutableList.of( - FunctionSignature.ret(TimeType.INSTANCE).args() - ); - - /** - * constructor with 0 argument. - */ - public Curtime() { - super("curtime"); - } - - @Override - public List getSignatures() { - return SIGNATURES; - } - - @Override - public R accept(ExpressionVisitor visitor, C context) { - return visitor.visitCurtime(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Day.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Day.java deleted file mode 100644 index 3fa10a4305..0000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Day.java +++ /dev/null @@ -1,73 +0,0 @@ -// 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. - -package org.apache.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.trees.expressions.functions.AlwaysNullable; -import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; -import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; -import org.apache.doris.nereids.types.DateTimeType; -import org.apache.doris.nereids.types.DateTimeV2Type; -import org.apache.doris.nereids.types.DateV2Type; -import org.apache.doris.nereids.types.IntegerType; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; - -import java.util.List; - -/** - * ScalarFunction 'day'. This class is generated by GenerateFunction. - */ -public class Day extends ScalarFunction - implements UnaryExpression, ExplicitlyCastableSignature, AlwaysNullable { - - public static final List SIGNATURES = ImmutableList.of( - FunctionSignature.ret(IntegerType.INSTANCE).args(DateTimeType.INSTANCE), - FunctionSignature.ret(IntegerType.INSTANCE).args(DateTimeV2Type.SYSTEM_DEFAULT), - FunctionSignature.ret(IntegerType.INSTANCE).args(DateV2Type.INSTANCE) - ); - - /** - * constructor with 1 argument. - */ - public Day(Expression arg) { - super("day", arg); - } - - /** - * withChildren. - */ - @Override - public Day withChildren(List children) { - Preconditions.checkArgument(children.size() == 1); - return new Day(children.get(0)); - } - - @Override - public List getSignatures() { - return SIGNATURES; - } - - @Override - public R accept(ExpressionVisitor visitor, C context) { - return visitor.visitDay(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LocalTime.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LocalTime.java deleted file mode 100644 index 2549e1d9b8..0000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LocalTime.java +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -package org.apache.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.trees.expressions.functions.AlwaysNotNullable; -import org.apache.doris.nereids.trees.expressions.functions.DateTimeWithPrecision; -import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; -import org.apache.doris.nereids.trees.expressions.functions.Nondeterministic; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; -import org.apache.doris.nereids.types.DateTimeType; -import org.apache.doris.nereids.types.DateTimeV2Type; -import org.apache.doris.nereids.types.IntegerType; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; - -import java.util.List; - -/** - * ScalarFunction 'localtime'. This class is generated by GenerateFunction. - */ -public class LocalTime extends DateTimeWithPrecision - implements ExplicitlyCastableSignature, Nondeterministic, AlwaysNotNullable { - - public static final List SIGNATURES = ImmutableList.of( - FunctionSignature.ret(DateTimeType.INSTANCE).args(), - FunctionSignature.ret(DateTimeV2Type.SYSTEM_DEFAULT).args(IntegerType.INSTANCE) - ); - - /** - * constructor with 0 argument. - */ - public LocalTime() { - super("localtime"); - } - - /** - * constructor with 1 argument. - */ - public LocalTime(Expression arg) { - super("localtime", arg); - } - - /** - * withChildren. - */ - @Override - public LocalTime withChildren(List children) { - Preconditions.checkArgument(children.size() == 0 - || children.size() == 1); - if (children.isEmpty() && arity() == 0) { - return this; - } else { - return new LocalTime(children.get(0)); - } - } - - @Override - public List getSignatures() { - return SIGNATURES; - } - - @Override - public R accept(ExpressionVisitor visitor, C context) { - return visitor.visitLocalTime(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LocalTimestamp.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LocalTimestamp.java deleted file mode 100644 index ba9ec5771b..0000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/LocalTimestamp.java +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -package org.apache.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.trees.expressions.functions.AlwaysNotNullable; -import org.apache.doris.nereids.trees.expressions.functions.DateTimeWithPrecision; -import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; -import org.apache.doris.nereids.trees.expressions.functions.Nondeterministic; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; -import org.apache.doris.nereids.types.DateTimeType; -import org.apache.doris.nereids.types.DateTimeV2Type; -import org.apache.doris.nereids.types.IntegerType; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; - -import java.util.List; - -/** - * ScalarFunction 'localtimestamp'. This class is generated by GenerateFunction. - */ -public class LocalTimestamp extends DateTimeWithPrecision - implements ExplicitlyCastableSignature, Nondeterministic, AlwaysNotNullable { - - public static final List SIGNATURES = ImmutableList.of( - FunctionSignature.ret(DateTimeType.INSTANCE).args(), - FunctionSignature.ret(DateTimeV2Type.SYSTEM_DEFAULT).args(IntegerType.INSTANCE) - ); - - /** - * constructor with 0 argument. - */ - public LocalTimestamp() { - super("localtimestamp"); - } - - /** - * constructor with 1 argument. - */ - public LocalTimestamp(Expression arg) { - super("localtimestamp", arg); - } - - /** - * withChildren. - */ - @Override - public LocalTimestamp withChildren(List children) { - Preconditions.checkArgument(children.size() == 0 - || children.size() == 1); - if (children.isEmpty() && arity() == 0) { - return this; - } else { - return new LocalTimestamp(children.get(0)); - } - } - - @Override - public List getSignatures() { - return SIGNATURES; - } - - @Override - public R accept(ExpressionVisitor visitor, C context) { - return visitor.visitLocalTimestamp(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java index e6cadbc3f4..ac620e522a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java @@ -90,16 +90,13 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Cos; import org.apache.doris.nereids.trees.expressions.functions.scalar.CountEqual; import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentDate; import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentTime; -import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentTimestamp; import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentUser; -import org.apache.doris.nereids.trees.expressions.functions.scalar.Curtime; import org.apache.doris.nereids.trees.expressions.functions.scalar.Database; import org.apache.doris.nereids.trees.expressions.functions.scalar.Date; import org.apache.doris.nereids.trees.expressions.functions.scalar.DateDiff; import org.apache.doris.nereids.trees.expressions.functions.scalar.DateFormat; import org.apache.doris.nereids.trees.expressions.functions.scalar.DateTrunc; import org.apache.doris.nereids.trees.expressions.functions.scalar.DateV2; -import org.apache.doris.nereids.trees.expressions.functions.scalar.Day; import org.apache.doris.nereids.trees.expressions.functions.scalar.DayCeil; import org.apache.doris.nereids.trees.expressions.functions.scalar.DayFloor; import org.apache.doris.nereids.trees.expressions.functions.scalar.DayName; @@ -183,8 +180,6 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Least; import org.apache.doris.nereids.trees.expressions.functions.scalar.Left; import org.apache.doris.nereids.trees.expressions.functions.scalar.Length; import org.apache.doris.nereids.trees.expressions.functions.scalar.Ln; -import org.apache.doris.nereids.trees.expressions.functions.scalar.LocalTime; -import org.apache.doris.nereids.trees.expressions.functions.scalar.LocalTimestamp; import org.apache.doris.nereids.trees.expressions.functions.scalar.Locate; import org.apache.doris.nereids.trees.expressions.functions.scalar.Log; import org.apache.doris.nereids.trees.expressions.functions.scalar.Log10; @@ -619,14 +614,6 @@ public interface ScalarFunctionVisitor { return visitScalarFunction(currentTime, context); } - default R visitCurrentTimestamp(CurrentTimestamp currentTimestamp, C context) { - return visitScalarFunction(currentTimestamp, context); - } - - default R visitCurtime(Curtime curtime, C context) { - return visitScalarFunction(curtime, context); - } - default R visitDate(Date date, C context) { return visitScalarFunction(date, context); } @@ -663,10 +650,6 @@ public interface ScalarFunctionVisitor { return visitScalarFunction(dateV2, context); } - default R visitDay(Day day, C context) { - return visitScalarFunction(day, context); - } - default R visitDayCeil(DayCeil dayCeil, C context) { return visitScalarFunction(dayCeil, context); } @@ -1031,14 +1014,6 @@ public interface ScalarFunctionVisitor { return visitScalarFunction(ln, context); } - default R visitLocalTime(LocalTime localTime, C context) { - return visitScalarFunction(localTime, context); - } - - default R visitLocalTimestamp(LocalTimestamp localTimestamp, C context) { - return visitScalarFunction(localTimestamp, context); - } - default R visitLocate(Locate locate, C context) { return visitScalarFunction(locate, context); } diff --git a/regression-test/suites/nereids_function_p0/scalar_function/A-F.groovy b/regression-test/suites/nereids_function_p0/scalar_function/A-F.groovy index ed8aebf8d6..fed0492cb7 100644 --- a/regression-test/suites/nereids_function_p0/scalar_function/A-F.groovy +++ b/regression-test/suites/nereids_function_p0/scalar_function/A-F.groovy @@ -115,8 +115,6 @@ suite("nereids_scalar_fn_1") { sql "select current_date() from fn_test" sql "select current_time() from fn_test" sql "select current_timestamp() from fn_test" - // core - // qt_sql "select current_timestamp(kint) from fn_test order by kint" sql "select current_user() from fn_test" sql "select curtime() from fn_test" sql "select database() from fn_test"