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

Function validate_map_keys

datafusion/functions-nested/src/map.rs:190–228  ·  view source on GitHub ↗

Validates that map keys are non-null and unique.

(array: &dyn Array)

Source from the content-addressed store, hash-verified

188
189/// Validates that map keys are non-null and unique.
190fn validate_map_keys(array: &dyn Array) -> Result<()> {
191 match array.data_type() {
192 DataType::Int8 => validate_unique_primitive_keys::<Int8Type>(array),
193 DataType::Int16 => validate_unique_primitive_keys::<Int16Type>(array),
194 DataType::Int32 => validate_unique_primitive_keys::<Int32Type>(array),
195 DataType::Int64 => validate_unique_primitive_keys::<Int64Type>(array),
196 DataType::UInt8 => validate_unique_primitive_keys::<UInt8Type>(array),
197 DataType::UInt16 => validate_unique_primitive_keys::<UInt16Type>(array),
198 DataType::UInt32 => validate_unique_primitive_keys::<UInt32Type>(array),
199 DataType::UInt64 => validate_unique_primitive_keys::<UInt64Type>(array),
200 DataType::Date32 => validate_unique_primitive_keys::<Date32Type>(array),
201 DataType::Date64 => validate_unique_primitive_keys::<Date64Type>(array),
202 DataType::Utf8 => {
203 let arr = array.as_string::<i32>();
204 validate_unique_str_keys(arr.null_count(), arr.len(), arr.iter().flatten())
205 }
206 DataType::LargeUtf8 => {
207 let arr = array.as_string::<i64>();
208 validate_unique_str_keys(arr.null_count(), arr.len(), arr.iter().flatten())
209 }
210 DataType::Utf8View => {
211 let arr = array.as_string_view();
212 validate_unique_str_keys(arr.null_count(), arr.len(), arr.iter().flatten())
213 }
214 DataType::Binary => {
215 let arr = array.as_binary::<i32>();
216 validate_unique_binary_keys(arr.null_count(), arr.len(), arr.iter().flatten())
217 }
218 DataType::LargeBinary => {
219 let arr = array.as_binary::<i64>();
220 validate_unique_binary_keys(arr.null_count(), arr.len(), arr.iter().flatten())
221 }
222 DataType::BinaryView => {
223 let arr = array.as_binary_view();
224 validate_unique_binary_keys(arr.null_count(), arr.len(), arr.iter().flatten())
225 }
226 _ => validate_unique_keys_generic(array),
227 }
228}
229
230fn get_first_array_ref(columnar_value: &ColumnarValue) -> Result<ArrayRef> {
231 match columnar_value {

Callers 1

make_map_batchFunction · 0.85

Calls 8

validate_unique_str_keysFunction · 0.85
null_countMethod · 0.80
flattenMethod · 0.80
data_typeMethod · 0.45
lenMethod · 0.45
iterMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…