| 58 | {} |
| 59 | |
| 60 | void 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 | |
| 79 | void QueryNode::removeUnusedProjectionColumns(const std::unordered_set<size_t> & used_projection_columns_indexes) |
| 80 | { |
no test coverage detected