From 1097d51a86dc92e2aedb575c4202dfa3c1da438b Mon Sep 17 00:00:00 2001 From: linrrarity Date: Thu, 25 Jun 2026 11:16:44 +0800 Subject: [PATCH] [Enhance](func) Delete useless code of split_by_char (#64801) ### Release note There is a function registration part for `SPLIT_BY_CHAR` in FE, but there is no corresponding implementation in BE. ```sql Doris> SELECT SPLIT_BY_CHAR('apple:banana:cherry', ':'); -- ERROR 1105 (HY000): errCode = 2, detailMessage = (127.0.0.1)[INTERNAL_ERROR]Could not find function split_by_char, arg String: String, String: String return Array(Nullable(String)) ``` Since the functionality of this function has already been implemented by `SPLIT_BY_STRING`, the implementation of this function is not meaningful and can be directly deleted. --- .../doris/catalog/BuiltinScalarFunctions.java | 2 - .../functions/scalar/SplitByChar.java | 76 ------------------- .../visitor/ScalarFunctionVisitor.java | 5 -- 3 files changed, 83 deletions(-) delete mode 100644 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SplitByChar.java 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 9585a5d4386..aa43f060982 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 @@ -466,7 +466,6 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4Encrypt; import org.apache.doris.nereids.trees.expressions.functions.scalar.SortJsonbObjectKeys; import org.apache.doris.nereids.trees.expressions.functions.scalar.Soundex; import org.apache.doris.nereids.trees.expressions.functions.scalar.Space; -import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByChar; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByRegexp; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByString; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitPart; @@ -1055,7 +1054,6 @@ public class BuiltinScalarFunctions implements FunctionHelper { scalar(SortJsonbObjectKeys.class, "sort_jsonb_object_keys"), scalar(Soundex.class, "soundex"), scalar(Space.class, "space"), - scalar(SplitByChar.class, "split_by_char"), scalar(SplitByRegexp.class, "split_by_regexp", "regexp_split_to_array"), scalar(SplitByString.class, "split_by_string", "split"), scalar(SplitPart.class, "split_part"), diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SplitByChar.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SplitByChar.java deleted file mode 100644 index bd92966eb85..00000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/SplitByChar.java +++ /dev/null @@ -1,76 +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.ExplicitlyCastableSignature; -import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable; -import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; -import org.apache.doris.nereids.types.ArrayType; -import org.apache.doris.nereids.types.StringType; -import org.apache.doris.nereids.types.VarcharType; - -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; - -import java.util.List; - -/** - * ScalarFunction 'split_by_char'. This class is generated by GenerateFunction. - */ -public class SplitByChar extends ScalarFunction - implements BinaryExpression, ExplicitlyCastableSignature, PropagateNullable { - - public static final List SIGNATURES = ImmutableList.of( - FunctionSignature.ret(ArrayType.of(VarcharType.SYSTEM_DEFAULT)) - .args(StringType.INSTANCE, StringType.INSTANCE) - ); - - /** - * constructor with 2 arguments. - */ - public SplitByChar(Expression arg0, Expression arg1) { - super("split_by_char", arg0, arg1); - } - - /** constructor for withChildren and reuse signature */ - private SplitByChar(ScalarFunctionParams functionParams) { - super(functionParams); - } - - /** - * withChildren. - */ - @Override - public SplitByChar withChildren(List children) { - Preconditions.checkArgument(children.size() == 2); - return new SplitByChar(getFunctionParams(children)); - } - - @Override - public R accept(ExpressionVisitor visitor, C context) { - return visitor.visitSplitByChar(this, context); - } - - @Override - public List getSignatures() { - return SIGNATURES; - } -} 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 f1392e04b0a..499eed6b11b 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 @@ -486,7 +486,6 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4Encrypt; import org.apache.doris.nereids.trees.expressions.functions.scalar.SortJsonbObjectKeys; import org.apache.doris.nereids.trees.expressions.functions.scalar.Soundex; import org.apache.doris.nereids.trees.expressions.functions.scalar.Space; -import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByChar; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByRegexp; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByString; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitPart; @@ -2354,10 +2353,6 @@ public interface ScalarFunctionVisitor { return visitScalarFunction(space, context); } - default R visitSplitByChar(SplitByChar splitByChar, C context) { - return visitScalarFunction(splitByChar, context); - } - default R visitSplitByRegexp(SplitByRegexp splitByRegexp, C context) { return visitScalarFunction(splitByRegexp, context); }