Skip to content

Commit

Permalink
Fix unresolved doc link
Browse files Browse the repository at this point in the history
  • Loading branch information
tlm365 committed Aug 26, 2024
1 parent 88aab46 commit 45dd141
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 38 deletions.
21 changes: 12 additions & 9 deletions datafusion/functions/src/string/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -482,8 +482,11 @@ where
}))
}

#[cfg(doc)]
use arrow::array::LargeStringArray;
/// Perform SQL `array ~ regex_array` operation on
/// [`StringArray`] / [`LargeStringArray`] / [`StringViewArray`].
///
/// If `regex_array` element has an empty value, the corresponding result value is always true.
///
/// `flags_array` are optional [`StringArray`] / [`LargeStringArray`] / [`StringViewArray`] flag,
Expand All @@ -494,15 +497,15 @@ where
/// It is inspired / copied from `regexp_is_match_utf8` [arrow-rs].
///
/// [arrow-rs]: https://github.com/apache/arrow-rs/blob/8c956a9f9ab26c14072740cce64c2b99cb039b13/arrow-string/src/regexp.rs#L31-L37
pub fn regexp_is_match<'a, ArrayType1, ArrayType2, ArrayType3>(
array: &'a ArrayType1,
regex_array: &'a ArrayType2,
flags_array: Option<&'a ArrayType3>,
) -> datafusion_common::Result<BooleanArray, DataFusionError>
pub fn regexp_is_match<'a, S1, S2, S3>(
array: &'a S1,
regex_array: &'a S2,
flags_array: Option<&'a S3>,
) -> Result<BooleanArray, DataFusionError>
where
&'a ArrayType1: StringArrayType<'a>,
&'a ArrayType2: StringArrayType<'a>,
&'a ArrayType3: StringArrayType<'a>,
&'a S1: StringArrayType<'a>,
&'a S2: StringArrayType<'a>,
&'a S3: StringArrayType<'a>,
{
if array.len() != regex_array.len() {
return Err(DataFusionError::Execution(
Expand Down Expand Up @@ -559,7 +562,7 @@ where
}
Ok(())
})
.collect::<datafusion_common::Result<Vec<()>, DataFusionError>>()?;
.collect::<Result<Vec<()>, DataFusionError>>()?;

let data = unsafe {
ArrayDataBuilder::new(DataType::Boolean)
Expand Down
50 changes: 21 additions & 29 deletions datafusion/functions/src/string/contains.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,11 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
(Utf8View, Utf8View) => {
let mod_str = args[0].as_string_view();
let match_str = args[1].as_string_view();
let res =
regexp_is_match::<StringViewArray, StringViewArray, StringViewArray>(
mod_str, match_str, None,
)
.map_err(|error| error)?;
let res = regexp_is_match::<
StringViewArray,
StringViewArray,
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand All @@ -106,9 +106,8 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
let res = regexp_is_match::<
StringViewArray,
GenericStringArray<i32>,
StringViewArray,
>(mod_str, match_str, None)
.map_err(|error| error)?;
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand All @@ -118,9 +117,8 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
let res = regexp_is_match::<
StringViewArray,
GenericStringArray<i64>,
StringViewArray,
>(mod_str, match_str, None)
.map_err(|error| error)?;
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand All @@ -130,9 +128,8 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
let res = regexp_is_match::<
GenericStringArray<i32>,
StringViewArray,
StringViewArray,
>(mod_str, match_str, None)
.map_err(|error| error)?;
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand All @@ -142,9 +139,8 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
let res = regexp_is_match::<
GenericStringArray<i32>,
GenericStringArray<i32>,
StringViewArray,
>(mod_str, match_str, None)
.map_err(|error| error)?;
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand All @@ -154,9 +150,8 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
let res = regexp_is_match::<
GenericStringArray<i32>,
GenericStringArray<i64>,
StringViewArray,
>(mod_str, match_str, None)
.map_err(|error| error)?;
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand All @@ -166,9 +161,8 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
let res = regexp_is_match::<
GenericStringArray<i64>,
StringViewArray,
StringViewArray,
>(mod_str, match_str, None)
.map_err(|error| error)?;
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand All @@ -178,9 +172,8 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
let res = regexp_is_match::<
GenericStringArray<i64>,
GenericStringArray<i32>,
StringViewArray,
>(mod_str, match_str, None)
.map_err(|error| error)?;
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand All @@ -190,9 +183,8 @@ pub fn contains(args: &[ArrayRef]) -> Result<ArrayRef, DataFusionError> {
let res = regexp_is_match::<
GenericStringArray<i64>,
GenericStringArray<i64>,
StringViewArray,
>(mod_str, match_str, None)
.map_err(|error| error)?;
GenericStringArray<i32>,
>(mod_str, match_str, None)?;

Ok(Arc::new(res) as ArrayRef)
}
Expand Down

0 comments on commit 45dd141

Please sign in to comment.