| 989 | } |
| 990 | |
| 991 | QueryTreeNodePtr createCastFunction(QueryTreeNodePtr node, DataTypePtr result_type, ContextPtr context) |
| 992 | { |
| 993 | auto enum_literal_node = std::make_shared<ConstantNode>(result_type->getName(), std::make_shared<DataTypeString>()); |
| 994 | |
| 995 | auto cast_function = FunctionFactory::instance().get("_CAST", std::move(context)); |
| 996 | QueryTreeNodes arguments{ std::move(node), std::move(enum_literal_node) }; |
| 997 | |
| 998 | auto function_node = std::make_shared<FunctionNode>("_CAST"); |
| 999 | function_node->getArguments().getNodes() = std::move(arguments); |
| 1000 | |
| 1001 | function_node->resolveAsFunction(cast_function->build(function_node->getArgumentColumns())); |
| 1002 | |
| 1003 | return function_node; |
| 1004 | } |
| 1005 | |
| 1006 | void resolveOrdinaryFunctionNodeByName(FunctionNode & function_node, const String & function_name, const ContextPtr & context) |
| 1007 | { |
no test coverage detected