General implementation for `left` and `right` functions
(
args: &[ArrayRef],
)
| 130 | |
| 131 | /// General implementation for `left` and `right` functions |
| 132 | pub(crate) fn general_left_right<F: LeftRightSlicer>( |
| 133 | args: &[ArrayRef], |
| 134 | ) -> Result<ArrayRef> { |
| 135 | let n_array = as_int64_array(&args[1])?; |
| 136 | |
| 137 | match args[0].data_type() { |
| 138 | DataType::Utf8 => { |
| 139 | let string_array = as_generic_string_array::<i32>(&args[0])?; |
| 140 | general_left_right_array::<i32, F>(string_array, n_array) |
| 141 | } |
| 142 | DataType::LargeUtf8 => { |
| 143 | let string_array = as_generic_string_array::<i64>(&args[0])?; |
| 144 | general_left_right_array::<i64, F>(string_array, n_array) |
| 145 | } |
| 146 | DataType::Utf8View => { |
| 147 | let string_view_array = as_string_view_array(&args[0])?; |
| 148 | general_left_right_view::<F>(string_view_array, n_array) |
| 149 | } |
| 150 | _ => exec_err!("Not supported"), |
| 151 | } |
| 152 | } |
| 153 | |
| 154 | /// Returns true if all offsets in the array fit in i32, meaning the values |
| 155 | /// buffer can be referenced by StringView's offset field. |
nothing calls this directly
no test coverage detected
searching dependent graphs…