| 163 | } |
| 164 | |
| 165 | QueryTreeNodePtr QueryTreeBuilder::buildSelectOrUnionExpression( |
| 166 | const ASTPtr & select_or_union_query, |
| 167 | bool is_subquery, |
| 168 | const CommonTableExpressionData & cte_data, |
| 169 | const ASTPtr & aliases, |
| 170 | const ContextPtr & context) const |
| 171 | { |
| 172 | QueryTreeNodePtr query_node; |
| 173 | |
| 174 | if (select_or_union_query->as<ASTSelectWithUnionQuery>()) |
| 175 | query_node = buildSelectWithUnionExpression(select_or_union_query, is_subquery, cte_data, nullptr /*aliases*/, context); |
| 176 | else if (select_or_union_query->as<ASTSelectIntersectExceptQuery>()) |
| 177 | query_node = buildSelectIntersectExceptQuery(select_or_union_query, is_subquery, cte_data, context); |
| 178 | else if (select_or_union_query->as<ASTSelectQuery>()) |
| 179 | query_node = buildSelectExpression(select_or_union_query, is_subquery, cte_data, aliases, context); |
| 180 | else |
| 181 | throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "SELECT or UNION query {} is not supported", |
| 182 | select_or_union_query->formatForErrorMessage()); |
| 183 | |
| 184 | return query_node; |
| 185 | } |
| 186 | |
| 187 | QueryTreeNodePtr QueryTreeBuilder::buildSelectWithUnionExpression( |
| 188 | const ASTPtr & select_with_union_query, |
nothing calls this directly
no test coverage detected