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

Function scatter_array

datafusion/physical-expr-common/src/utils.rs:104–146  ·  view source on GitHub ↗
(
    truthy: &dyn Array,
    mask: &BooleanBuffer,
    output_len: usize,
    selectivity: f64,
)

Source from the content-addressed store, hash-verified

102}
103
104fn scatter_array(
105 truthy: &dyn Array,
106 mask: &BooleanBuffer,
107 output_len: usize,
108 selectivity: f64,
109) -> Result<ArrayRef> {
110 downcast_primitive_array! {
111 truthy => Ok(Arc::new(scatter_primitive(truthy, mask, output_len, selectivity))),
112 DataType::Boolean => {
113 Ok(Arc::new(scatter_boolean(truthy.as_boolean(), mask, output_len, selectivity)))
114 }
115 DataType::Utf8 => {
116 Ok(Arc::new(scatter_bytes(truthy.as_string::<i32>(), mask, output_len, selectivity)))
117 }
118 DataType::LargeUtf8 => {
119 Ok(Arc::new(scatter_bytes(truthy.as_string::<i64>(), mask, output_len, selectivity)))
120 }
121 DataType::Utf8View => {
122 Ok(Arc::new(scatter_byte_view(truthy.as_string_view(), mask, output_len, selectivity)))
123 }
124 DataType::Binary => {
125 Ok(Arc::new(scatter_bytes(truthy.as_binary::<i32>(), mask, output_len, selectivity)))
126 }
127 DataType::LargeBinary => {
128 Ok(Arc::new(scatter_bytes(truthy.as_binary::<i64>(), mask, output_len, selectivity)))
129 }
130 DataType::BinaryView => {
131 Ok(Arc::new(scatter_byte_view(truthy.as_binary_view(), mask, output_len, selectivity)))
132 }
133 DataType::FixedSizeBinary(_) => {
134 Ok(Arc::new(scatter_fixed_size_binary(
135 truthy.as_fixed_size_binary(), mask, output_len, selectivity,
136 )))
137 }
138 DataType::Dictionary(_, _) => {
139 downcast_dictionary_array! {
140 truthy => Ok(Arc::new(scatter_dict(truthy, mask, output_len, selectivity))),
141 _t => scatter_fallback(truthy, mask, output_len)
142 }
143 }
144 _ => scatter_fallback(truthy, mask, output_len)
145 }
146}
147
148#[inline(never)]
149fn scatter_native<T: ArrowNativeType>(

Callers 1

scatterFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…