diff --git a/be/src/exprs/string_functions.cpp b/be/src/exprs/string_functions.cpp index 69d1898451..2c72bebfb6 100644 --- a/be/src/exprs/string_functions.cpp +++ b/be/src/exprs/string_functions.cpp @@ -217,7 +217,7 @@ StringVal StringFunctions::lpad(FunctionContext* context, const StringVal& str, return StringVal::null(); } if (len.val == str_index.size()) { - return StringVal(str.ptr, len.val); + return StringVal(str.ptr, str.len); } return StringVal(str.ptr, str_index[len.val]); } @@ -268,7 +268,7 @@ StringVal StringFunctions::rpad(FunctionContext* context, const StringVal& str, return StringVal::null(); } if (len.val == str_index.size()) { - return StringVal(str.ptr, len.val); + return StringVal(str.ptr, str.len); } return StringVal(str.ptr, str_index[len.val]); } diff --git a/be/test/exprs/string_functions_test.cpp b/be/test/exprs/string_functions_test.cpp index e7bae963ea..d950f11ce3 100644 --- a/be/test/exprs/string_functions_test.cpp +++ b/be/test/exprs/string_functions_test.cpp @@ -470,6 +470,8 @@ TEST_F(StringFunctionsTest, lpad) { StringFunctions::lpad(ctx, StringVal("hi"), IntVal(1), StringVal("?"))); ASSERT_EQ(StringVal("你"), StringFunctions::lpad(ctx, StringVal("你好"), IntVal(1), StringVal("?"))); + ASSERT_EQ(StringVal("你"), + StringFunctions::lpad(ctx, StringVal("你"), IntVal(1), StringVal("?"))); ASSERT_EQ(StringVal(""), StringFunctions::lpad(ctx, StringVal("hi"), IntVal(0), StringVal("?"))); ASSERT_EQ(StringVal::null(), @@ -498,6 +500,8 @@ TEST_F(StringFunctionsTest, rpad) { StringFunctions::rpad(ctx, StringVal("hi"), IntVal(1), StringVal("?"))); ASSERT_EQ(StringVal("你"), StringFunctions::rpad(ctx, StringVal("你好"), IntVal(1), StringVal("?"))); + ASSERT_EQ(StringVal("你"), + StringFunctions::rpad(ctx, StringVal("你"), IntVal(1), StringVal("?"))); ASSERT_EQ(StringVal(""), StringFunctions::rpad(ctx, StringVal("hi"), IntVal(0), StringVal("?"))); ASSERT_EQ(StringVal::null(),