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

Function getExpressionNodeResultTypeOrNull

src/Analyzer/Utils.cpp:322–348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

320}
321
322DataTypePtr getExpressionNodeResultTypeOrNull(const QueryTreeNodePtr & query_tree_node)
323{
324 auto node_type = query_tree_node->getNodeType();
325
326 switch (node_type)
327 {
328 case QueryTreeNodeType::CONSTANT:
329 [[fallthrough]];
330 case QueryTreeNodeType::COLUMN:
331 {
332 return query_tree_node->getResultType();
333 }
334 case QueryTreeNodeType::FUNCTION:
335 {
336 auto & function_node = query_tree_node->as<FunctionNode &>();
337 if (function_node.isResolved())
338 return function_node.getResultType();
339 break;
340 }
341 default:
342 {
343 break;
344 }
345 }
346
347 return nullptr;
348}
349
350QueryTreeNodePtr buildCastFunction(const QueryTreeNodePtr & expression,
351 const DataTypePtr & type,

Callers 1

Calls 3

getNodeTypeMethod · 0.45
getResultTypeMethod · 0.45
isResolvedMethod · 0.45

Tested by

no test coverage detected