MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / createCastFunction

Function createCastFunction

src/Analyzer/Utils.cpp:991–1004  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

989}
990
991QueryTreeNodePtr 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
1006void resolveOrdinaryFunctionNodeByName(FunctionNode & function_node, const String & function_name, const ContextPtr & context)
1007{

Callers 9

enterImplMethod · 0.85
enterImplMethod · 0.85
enterImplMethod · 0.85
enterImplMethod · 0.85
changeIfArgumentsFunction · 0.85
changeTransformArgumentsFunction · 0.85

Calls 7

getNodesMethod · 0.80
getNameMethod · 0.45
getMethod · 0.45
getArgumentsMethod · 0.45
resolveAsFunctionMethod · 0.45
buildMethod · 0.45
getArgumentColumnsMethod · 0.45

Tested by

no test coverage detected