From 53f2fe1fbee83f22c81e28aaec02fb0628b68966 Mon Sep 17 00:00:00 2001 From: Adam Reichold Date: Fri, 22 Dec 2023 11:01:10 +0100 Subject: [PATCH] Forward regex parser errors to enable understandin their reason. (#2288) --- src/query/regex_query.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/query/regex_query.rs b/src/query/regex_query.rs index 50527980a..815832d31 100644 --- a/src/query/regex_query.rs +++ b/src/query/regex_query.rs @@ -63,7 +63,7 @@ impl RegexQuery { /// Creates a new RegexQuery from a given pattern pub fn from_pattern(regex_pattern: &str, field: Field) -> crate::Result { let regex = Regex::new(regex_pattern) - .map_err(|_| TantivyError::InvalidArgument(regex_pattern.to_string()))?; + .map_err(|err| TantivyError::InvalidArgument(format!("RegexQueryError: {err}")))?; Ok(RegexQuery::from_regex(regex, field)) } @@ -176,4 +176,16 @@ mod test { verify_regex_query(matching_one, matching_zero, reader); Ok(()) } + + #[test] + pub fn test_pattern_error() { + let (_reader, field) = build_test_index().unwrap(); + + match RegexQuery::from_pattern(r"(foo", field) { + Err(crate::TantivyError::InvalidArgument(msg)) => { + assert!(msg.contains("error: unclosed group")) + } + res => panic!("unexpected result: {:?}", res), + } + } }