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

Function hash_single_array

datafusion/common/src/hash_utils.rs:974–1043  ·  view source on GitHub ↗
(
    array: &dyn Array,
    random_state: &RandomState,
    hashes_buffer: &mut [u64],
    rehash: bool,
)

Source from the content-addressed store, hash-verified

972/// the hash values in the buffer.
973#[cfg(not(feature = "force_hash_collisions"))]
974fn hash_single_array(
975 array: &dyn Array,
976 random_state: &RandomState,
977 hashes_buffer: &mut [u64],
978 rehash: bool,
979) -> Result<()> {
980 downcast_primitive_array! {
981 array => hash_array_primitive(array, random_state, hashes_buffer, rehash),
982 DataType::Null => hash_null(random_state, hashes_buffer, rehash),
983 DataType::Boolean => hash_array(&as_boolean_array(array)?, random_state, hashes_buffer, rehash),
984 DataType::Utf8 => hash_array(&as_string_array(array)?, random_state, hashes_buffer, rehash),
985 DataType::Utf8View => hash_generic_byte_view_array(as_string_view_array(array)?, random_state, hashes_buffer, rehash),
986 DataType::LargeUtf8 => hash_array(&as_largestring_array(array), random_state, hashes_buffer, rehash),
987 DataType::Binary => hash_array(&as_generic_binary_array::<i32>(array)?, random_state, hashes_buffer, rehash),
988 DataType::BinaryView => hash_generic_byte_view_array(as_binary_view_array(array)?, random_state, hashes_buffer, rehash),
989 DataType::LargeBinary => hash_array(&as_generic_binary_array::<i64>(array)?, random_state, hashes_buffer, rehash),
990 DataType::FixedSizeBinary(_) => {
991 let array: &FixedSizeBinaryArray = array.as_any().downcast_ref().unwrap();
992 hash_array(&array, random_state, hashes_buffer, rehash)
993 }
994 DataType::Dictionary(_, _) => downcast_dictionary_array! {
995 array => hash_dictionary(array, random_state, hashes_buffer, rehash)?,
996 _ => unreachable!()
997 }
998 DataType::Struct(_) => {
999 let array = as_struct_array(array)?;
1000 hash_struct_array(array, random_state, hashes_buffer)?;
1001 }
1002 DataType::List(_) => {
1003 let array = as_list_array(array)?;
1004 hash_list_array(array, random_state, hashes_buffer)?;
1005 }
1006 DataType::LargeList(_) => {
1007 let array = as_large_list_array(array)?;
1008 hash_list_array(array, random_state, hashes_buffer)?;
1009 }
1010 DataType::ListView(_) => {
1011 let array = as_list_view_array(array)?;
1012 hash_list_view_array(array, random_state, hashes_buffer)?;
1013 }
1014 DataType::LargeListView(_) => {
1015 let array = as_large_list_view_array(array)?;
1016 hash_list_view_array(array, random_state, hashes_buffer)?;
1017 }
1018 DataType::Map(_, _) => {
1019 let array = as_map_array(array)?;
1020 hash_map_array(array, random_state, hashes_buffer)?;
1021 }
1022 DataType::FixedSizeList(_,_) => {
1023 let array = as_fixed_size_list_array(array)?;
1024 hash_fixed_list_array(array, random_state, hashes_buffer)?;
1025 }
1026 DataType::Union(_, _) => {
1027 let array = as_union_array(array)?;
1028 hash_union_array(array, random_state, hashes_buffer)?;
1029 }
1030 DataType::RunEndEncoded(_, _) => downcast_run_array! {
1031 array => hash_run_array(array, random_state, hashes_buffer, rehash)?,

Callers 1

create_hashesFunction · 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…