diff --git a/be/src/vec/functions/match.cpp b/be/src/vec/functions/match.cpp index 71d6fd8ec6..38f0f7240a 100644 --- a/be/src/vec/functions/match.cpp +++ b/be/src/vec/functions/match.cpp @@ -454,10 +454,11 @@ Status FunctionMatchRegexp::execute_match(FunctionContext* context, const std::s if (hs_compile(pattern.data(), HS_FLAG_DOTALL | HS_FLAG_ALLOWEMPTY | HS_FLAG_UTF8, HS_MODE_BLOCK, nullptr, &database, &compile_err) != HS_SUCCESS) { - LOG(ERROR) << "hyperscan compilation failed: " << compile_err->message; + std::string err_message = "hyperscan compilation failed: "; + err_message.append(compile_err->message); + LOG(ERROR) << err_message; hs_free_compile_error(compile_err); - return Status::Error( - std::string("hyperscan compilation failed:") + compile_err->message); + return Status::Error(err_message); } if (hs_alloc_scratch(database, &scratch) != HS_SUCCESS) { diff --git a/regression-test/suites/inverted_index_p0/test_no_index_match.groovy b/regression-test/suites/inverted_index_p0/test_no_index_match.groovy index 7cace77da7..dafdb64553 100644 --- a/regression-test/suites/inverted_index_p0/test_no_index_match.groovy +++ b/regression-test/suites/inverted_index_p0/test_no_index_match.groovy @@ -113,6 +113,13 @@ suite("test_no_index_match", "p0") { log.info(e.getMessage()); assertTrue(e.getMessage().contains("match_phrase_prefix not support execute_match")) } + + try { + sql """ select count() from ${testTable} where (request match_regexp '?'); """ + } catch (Exception e) { + log.info(e.getMessage()); + assertTrue(e.getMessage().contains("hyperscan compilation failed: Invalid repeat at index 0.")) + } } finally { } } \ No newline at end of file