Add string function split_part (#1451)

This commit is contained in:
Candy
2019-07-10 09:47:33 +08:00
committed by ZHAO Chun
parent 615c979727
commit 98bd4b4565
5 changed files with 140 additions and 0 deletions

View File

@ -123,6 +123,40 @@ TEST_F(StringFunctionsTest, money_format_decimal_v2) {
ASSERT_EQ(expected, result);
}
TEST_F(StringFunctionsTest, split_part) {
doris_udf::FunctionContext* context = new doris_udf::FunctionContext();
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string("hello")),
StringFunctions::split_part(context, StringVal("hello word"), StringVal(" "), 1));
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string("word")),
StringFunctions::split_part(context, StringVal("hello word"), StringVal(" "), 2));
ASSERT_EQ(StringVal::null(),
StringFunctions::split_part(context, StringVal("hello word"), StringVal(" "), 3));
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string("")),
StringFunctions::split_part(context, StringVal("hello word"), StringVal("hello"), 1));
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string(" word")),
StringFunctions::split_part(context, StringVal("hello word"), StringVal("hello"), 2));
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string("2019年9")),
StringFunctions::split_part(context, StringVal("2019年9月8日"), StringVal(""), 1));
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string("")),
StringFunctions::split_part(context, StringVal("abcdabda"), StringVal("a"), 1));
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string("bcd")),
StringFunctions::split_part(context, StringVal("abcdabda"), StringVal("a"), 2));
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string("bd")),
StringFunctions::split_part(context, StringVal("abcdabda"), StringVal("a"), 3));
ASSERT_EQ(AnyValUtil::from_string_temp(context,std::string("")),
StringFunctions::split_part(context, StringVal("abcdabda"), StringVal("a"), 4));
}
}
int main(int argc, char** argv) {