[fix](inverted index) Fix incorrect usage of regexp compile_err (#41944) (#42085)

https://github.com/apache/doris/pull/41944
This commit is contained in:
zzzxl
2024-10-18 22:06:59 +08:00
committed by GitHub
parent b514371524
commit dde0bf92ce
2 changed files with 11 additions and 3 deletions

View File

@ -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<ErrorCode::INVERTED_INDEX_INVALID_PARAMETERS>(
std::string("hyperscan compilation failed:") + compile_err->message);
return Status::Error<ErrorCode::INVERTED_INDEX_INVALID_PARAMETERS>(err_message);
}
if (hs_alloc_scratch(database, &scratch) != HS_SUCCESS) {

View File

@ -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 {
}
}