MCPcopy Create free account
hub / github.com/apache/datafusion / general_left_right

Function general_left_right

datafusion/functions/src/unicode/common.rs:132–152  ·  view source on GitHub ↗

General implementation for `left` and `right` functions

(
    args: &[ArrayRef],
)

Source from the content-addressed store, hash-verified

130
131/// General implementation for `left` and `right` functions
132pub(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.

Callers

nothing calls this directly

Calls 3

as_int64_arrayFunction · 0.85
as_string_view_arrayFunction · 0.85
data_typeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…