Skip to main content

uqa_execution/type_resolution/
md5.rs

1//
2// Unified Query Algebra
3//
4// Copyright (c) 2023-2026 Cognica, Inc.
5//
6
7//! Compatibility API for `md5(text|bytea)` overload resolution.
8
9use uqa_sql::ast::{ColumnType, FunctionBinding};
10use uqa_sql::SQLError;
11
12use super::common::local_routine_name;
13use super::string_binary::{self, ResolvedStringBinaryOverload};
14use super::{function_resolution_error, FunctionTypeResolver};
15
16pub type ResolvedMd5Overload = ResolvedStringBinaryOverload;
17
18#[doc(hidden)]
19pub fn resolve_md5_overload(
20    name: &str,
21    binding: Option<&FunctionBinding>,
22    argument_names: &[Option<String>],
23    argument_types: &[Option<ColumnType>],
24    resolver: Option<&dyn FunctionTypeResolver>,
25) -> Result<ResolvedMd5Overload, SQLError> {
26    if local_routine_name(name) != "md5" {
27        return Err(function_resolution_error(
28            "42883",
29            name,
30            argument_names,
31            argument_types,
32            "does not exist",
33        ));
34    }
35    string_binary::resolve_overload(name, binding, argument_names, argument_types, resolver)
36}