#pragma once #include #include #include #include #include #include #include namespace DB { class UserDefinedExecutableFunctionFactory { public: using Creator = std::function; static UserDefinedExecutableFunctionFactory & instance(); static FunctionOverloadResolverPtr get(const String & function_name, ContextPtr context, Array parameters = {}); static FunctionOverloadResolverPtr tryGet(const String & function_name, ContextPtr context, Array parameters = {}); static bool has(const String & function_name, ContextPtr context); static std::vector getRegisteredNames(ContextPtr context); }; }