()
| 2874 | |
| 2875 | #[test] |
| 2876 | fn regex_with_nulls() -> Result<()> { |
| 2877 | let schema = Schema::new(vec![ |
| 2878 | Field::new("a", DataType::Utf8, true), |
| 2879 | Field::new("b", DataType::Utf8, true), |
| 2880 | ]); |
| 2881 | let a = Arc::new(StringArray::from(vec![ |
| 2882 | Some("abc"), |
| 2883 | None, |
| 2884 | Some("abc"), |
| 2885 | None, |
| 2886 | Some("abc"), |
| 2887 | ])) as ArrayRef; |
| 2888 | let b = Arc::new(StringArray::from(vec![ |
| 2889 | Some("^a"), |
| 2890 | Some("^A"), |
| 2891 | None, |
| 2892 | None, |
| 2893 | Some("^(b|c)"), |
| 2894 | ])) as ArrayRef; |
| 2895 | |
| 2896 | let regex_expected = |
| 2897 | BooleanArray::from(vec![Some(true), None, None, None, Some(false)]); |
| 2898 | let regex_not_expected = |
| 2899 | BooleanArray::from(vec![Some(false), None, None, None, Some(true)]); |
| 2900 | apply_logic_op( |
| 2901 | &Arc::new(schema.clone()), |
| 2902 | &a, |
| 2903 | &b, |
| 2904 | Operator::RegexMatch, |
| 2905 | regex_expected.clone(), |
| 2906 | )?; |
| 2907 | apply_logic_op( |
| 2908 | &Arc::new(schema.clone()), |
| 2909 | &a, |
| 2910 | &b, |
| 2911 | Operator::RegexIMatch, |
| 2912 | regex_expected.clone(), |
| 2913 | )?; |
| 2914 | apply_logic_op( |
| 2915 | &Arc::new(schema.clone()), |
| 2916 | &a, |
| 2917 | &b, |
| 2918 | Operator::RegexNotMatch, |
| 2919 | regex_not_expected.clone(), |
| 2920 | )?; |
| 2921 | apply_logic_op( |
| 2922 | &Arc::new(schema), |
| 2923 | &a, |
| 2924 | &b, |
| 2925 | Operator::RegexNotIMatch, |
| 2926 | regex_not_expected.clone(), |
| 2927 | )?; |
| 2928 | |
| 2929 | let schema = Schema::new(vec![ |
| 2930 | Field::new("a", DataType::LargeUtf8, true), |
| 2931 | Field::new("b", DataType::LargeUtf8, true), |
| 2932 | ]); |
| 2933 | let a = Arc::new(LargeStringArray::from(vec![ |
nothing calls this directly
no test coverage detected
searching dependent graphs…