This is an automated email from the ASF dual-hosted git repository.

zclll 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 2490469a5f5 [Enhancement](length) Support alias OCTET_LENGTH for 
function LENGTH (#57369)
2490469a5f5 is described below

commit 2490469a5f5c83fb3172ada552b469589985aefd
Author: linrrarity <[email protected]>
AuthorDate: Wed Oct 29 11:42:46 2025 +0800

    [Enhancement](length) Support alias OCTET_LENGTH for function LENGTH 
(#57369)
    
    An alias for `LENGTH`(see [OCTET_LENGTH in
    
MySQL](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_octet-length):
    
[OCTET_LENGTH()](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_octet-length)
    is a synonym for
    
[LENGTH()](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_length).)
    
    ```text
    mysql> SELECT OCTET_LENGTH('abc');
    +---------------------+
    | OCTET_LENGTH('abc') |
    +---------------------+
    |                   3 |
    +---------------------+
    
    mysql> SELECT OCTET_LENGTH('你好');
    +------------------------+
    | OCTET_LENGTH('你好')   |
    +------------------------+
    |                      6 |
    +------------------------+
    ```
---
 be/src/vec/functions/function_string.cpp                     |  1 +
 .../org/apache/doris/catalog/BuiltinScalarFunctions.java     |  2 +-
 .../suites/nereids_function_p0/scalar_function/L.groovy      | 12 ++++++++++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/be/src/vec/functions/function_string.cpp 
b/be/src/vec/functions/function_string.cpp
index 68ecee34cd6..9119d25bfe0 100644
--- a/be/src/vec/functions/function_string.cpp
+++ b/be/src/vec/functions/function_string.cpp
@@ -1457,6 +1457,7 @@ void register_function_string(SimpleFunctionFactory& 
factory) {
     factory.register_alias(FunctionStringDigestMulti<SM3Sum>::name, "sm3");
     factory.register_alias(FunctionStringDigestSHA1::name, "sha");
     factory.register_alias(FunctionStringLocatePos::name, "position");
+    factory.register_alias(FunctionStringLength::name, "octet_length");
 }
 
 } // namespace doris::vectorized
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 0417ed86a98..448d7bc3fb6 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
@@ -832,7 +832,7 @@ public class BuiltinScalarFunctions implements 
FunctionHelper {
             scalar(Lcm.class, "lcm"),
             scalar(Least.class, "least"),
             scalar(Left.class, "left", "strleft"),
-            scalar(Length.class, "length"),
+            scalar(Length.class, "length", "octet_length"),
             scalar(Crc32.class, "crc32"),
             scalar(Crc32Internal.class, "crc32_internal"),
             scalar(Like.class, "like"),
diff --git 
a/regression-test/suites/nereids_function_p0/scalar_function/L.groovy 
b/regression-test/suites/nereids_function_p0/scalar_function/L.groovy
index 5f6e44341bd..daf28b3a8a9 100644
--- a/regression-test/suites/nereids_function_p0/scalar_function/L.groovy
+++ b/regression-test/suites/nereids_function_p0/scalar_function/L.groovy
@@ -73,6 +73,18 @@ suite("nereids_scalar_fn_L") {
        qt_sql_length_Varchar_notnull "select length(kvchrs1) from 
fn_test_not_nullable order by kvchrs1"
        qt_sql_length_String "select length(kstr) from fn_test order by kstr"
        qt_sql_length_String_notnull "select length(kstr) from 
fn_test_not_nullable order by kstr"
+       def length_str = sql """select length(kvchrs1) from fn_test order by 
kvchrs1"""
+       def octet_length_str = sql """select octet_length(kvchrs1) from fn_test 
order by kvchrs1"""
+       assertEquals(length_str, octet_length_str)
+       length_str = sql """select length(kvchrs1) from fn_test_not_nullable 
order by kvchrs1"""
+       octet_length_str = sql """select length(kvchrs1) from 
fn_test_not_nullable order by kvchrs1"""
+       assertEquals(length_str, octet_length_str)
+       length_str = sql """select length(kstr) from fn_test order by kstr"""
+       octet_length_str = sql """select octet_length(kstr) from fn_test order 
by kstr"""
+       assertEquals(length_str, octet_length_str)
+       length_str = sql """select length(kstr) from fn_test_not_nullable order 
by kstr"""
+       octet_length_str = sql """select octet_length(kstr) from 
fn_test_not_nullable order by kstr"""
+       assertEquals(length_str, octet_length_str)
        qt_sql_like_Varchar_Varchar "select like(kvchrs1, kvchrs2) from fn_test 
order by kvchrs1"
        qt_sql_like_Varchar_Varchar_not_null "select like(kvchrs1, kvchrs2) 
from fn_test_not_nullable order by kvchrs1"
        qt_sql_ln_Double "select ln(kdbl) from fn_test order by kdbl"


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to