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

Function md5

datafusion/functions/src/crypto/md5.rs:117–134  ·  view source on GitHub ↗
(args: &[ColumnarValue])

Source from the content-addressed store, hash-verified

115}
116
117fn md5(args: &[ColumnarValue]) -> Result<ColumnarValue> {
118 let [data] = take_function_args("md5", args)?;
119 let value = digest_process(data, DigestAlgorithm::Md5)?;
120
121 // md5 requires special handling because of its unique utf8view return type
122 Ok(match value {
123 ColumnarValue::Array(array) => {
124 let binary_array = as_binary_array(&array)?;
125 let string_array: StringViewArray =
126 binary_array.iter().map(|opt| opt.map(hex_encode)).collect();
127 ColumnarValue::Array(Arc::new(string_array))
128 }
129 ColumnarValue::Scalar(ScalarValue::Binary(opt)) => {
130 ColumnarValue::Scalar(ScalarValue::Utf8View(opt.map(hex_encode)))
131 }
132 _ => return internal_err!("Impossibly got invalid results from digest"),
133 })
134}

Callers 2

test_fn_md5Function · 0.85
invoke_with_argsMethod · 0.85

Calls 7

take_function_argsFunction · 0.85
digest_processFunction · 0.85
as_binary_arrayFunction · 0.85
newFunction · 0.85
collectMethod · 0.80
mapMethod · 0.45
iterMethod · 0.45

Tested by 1

test_fn_md5Function · 0.68