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

Method resolveProjectionColumns

src/Analyzer/QueryNode.cpp:60–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58{}
59
60void QueryNode::resolveProjectionColumns(NamesAndTypes projection_columns_value)
61{
62
63 // Ensure the number of aliases matches the number of projection columns
64 if (!this->projection_aliases_to_override.empty())
65 {
66 if (this->projection_aliases_to_override.size() != projection_columns_value.size())
67 throw Exception(ErrorCodes::BAD_ARGUMENTS,
68 "Number of aliases does not match number of projection columns. "
69 "Expected {}, got {}",
70 projection_columns_value.size(),
71 this->projection_aliases_to_override.size());
72
73 for (size_t i = 0; i < projection_columns_value.size(); ++i)
74 projection_columns_value[i].name = this->projection_aliases_to_override[i];
75 }
76 projection_columns = std::move(projection_columns_value);
77}
78
79void QueryNode::removeUnusedProjectionColumns(const std::unordered_set<size_t> & used_projection_columns_indexes)
80{

Callers 9

enterImplMethod · 0.80
enterImplMethod · 0.80
wrapWithSelectOrderByFunction · 0.80
resolveFunctionMethod · 0.80
resolveQueryMethod · 0.80

Calls 3

ExceptionClass · 0.50
emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected