Skip to content

Commit 325fac6

Browse files
committed
tmp copy for ci.
1 parent 07dd492 commit 325fac6

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

datafusion/functions/src/string/common.rs

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ use std::fmt::{Display, Formatter};
2121
use std::sync::Arc;
2222

2323
use arrow::array::{
24-
new_null_array, Array, ArrayAccessor, ArrayDataBuilder, ArrayIter, ArrayRef,
25-
GenericStringArray, GenericStringBuilder, LargeStringArray, OffsetSizeTrait,
26-
StringArray, StringBuilder, StringViewArray, StringViewBuilder,
24+
make_view, new_null_array, Array, ArrayAccessor, ArrayDataBuilder, ArrayIter,
25+
ArrayRef, ByteView, GenericStringArray, GenericStringBuilder, LargeStringArray,
26+
OffsetSizeTrait, StringArray, StringBuilder, StringViewArray, StringViewBuilder,
2727
};
2828
use arrow::buffer::{Buffer, MutableBuffer, NullBuffer};
2929
use arrow::datatypes::DataType;
@@ -33,7 +33,27 @@ use datafusion_common::Result;
3333
use datafusion_common::{exec_err, ScalarValue};
3434
use datafusion_expr::ColumnarValue;
3535

36-
use crate::unicode::substr::make_and_append_view;
36+
/// Make a `u128` based on the given substr, start(offset to view.offset), and
37+
/// push into to the given buffers
38+
// TODO: tmp copy, remove after #12383 is merged
39+
fn make_and_append_view(
40+
views_buffer: &mut Vec<u128>,
41+
null_builder: &mut NullBufferBuilder,
42+
raw: &u128,
43+
substr: &str,
44+
start: u32,
45+
) {
46+
let substr_len = substr.len();
47+
let sub_view = if substr_len > 12 {
48+
let view = ByteView::from(*raw);
49+
make_view(substr.as_bytes(), view.buffer_index, view.offset + start)
50+
} else {
51+
// inline value does not need block id or offset
52+
make_view(substr.as_bytes(), 0, 0)
53+
};
54+
views_buffer.push(sub_view);
55+
null_builder.append_non_null();
56+
}
3757

3858
pub(crate) enum TrimType {
3959
Left,

0 commit comments

Comments
 (0)