Skip to content

Commit 2490469

Browse files
authored
[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 | +------------------------+ ```
1 parent 8b4e184 commit 2490469

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

be/src/vec/functions/function_string.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1457,6 +1457,7 @@ void register_function_string(SimpleFunctionFactory& factory) {
14571457
factory.register_alias(FunctionStringDigestMulti<SM3Sum>::name, "sm3");
14581458
factory.register_alias(FunctionStringDigestSHA1::name, "sha");
14591459
factory.register_alias(FunctionStringLocatePos::name, "position");
1460+
factory.register_alias(FunctionStringLength::name, "octet_length");
14601461
}
14611462

14621463
} // namespace doris::vectorized

fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,7 @@ public class BuiltinScalarFunctions implements FunctionHelper {
832832
scalar(Lcm.class, "lcm"),
833833
scalar(Least.class, "least"),
834834
scalar(Left.class, "left", "strleft"),
835-
scalar(Length.class, "length"),
835+
scalar(Length.class, "length", "octet_length"),
836836
scalar(Crc32.class, "crc32"),
837837
scalar(Crc32Internal.class, "crc32_internal"),
838838
scalar(Like.class, "like"),

regression-test/suites/nereids_function_p0/scalar_function/L.groovy

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,18 @@ suite("nereids_scalar_fn_L") {
7373
qt_sql_length_Varchar_notnull "select length(kvchrs1) from fn_test_not_nullable order by kvchrs1"
7474
qt_sql_length_String "select length(kstr) from fn_test order by kstr"
7575
qt_sql_length_String_notnull "select length(kstr) from fn_test_not_nullable order by kstr"
76+
def length_str = sql """select length(kvchrs1) from fn_test order by kvchrs1"""
77+
def octet_length_str = sql """select octet_length(kvchrs1) from fn_test order by kvchrs1"""
78+
assertEquals(length_str, octet_length_str)
79+
length_str = sql """select length(kvchrs1) from fn_test_not_nullable order by kvchrs1"""
80+
octet_length_str = sql """select length(kvchrs1) from fn_test_not_nullable order by kvchrs1"""
81+
assertEquals(length_str, octet_length_str)
82+
length_str = sql """select length(kstr) from fn_test order by kstr"""
83+
octet_length_str = sql """select octet_length(kstr) from fn_test order by kstr"""
84+
assertEquals(length_str, octet_length_str)
85+
length_str = sql """select length(kstr) from fn_test_not_nullable order by kstr"""
86+
octet_length_str = sql """select octet_length(kstr) from fn_test_not_nullable order by kstr"""
87+
assertEquals(length_str, octet_length_str)
7688
qt_sql_like_Varchar_Varchar "select like(kvchrs1, kvchrs2) from fn_test order by kvchrs1"
7789
qt_sql_like_Varchar_Varchar_not_null "select like(kvchrs1, kvchrs2) from fn_test_not_nullable order by kvchrs1"
7890
qt_sql_ln_Double "select ln(kdbl) from fn_test order by kdbl"

0 commit comments

Comments
 (0)