Skip to content

Commit cdfa32f

Browse files
committed
Do not throw exception if scope is already registered
1 parent e8bc1ae commit cdfa32f

1 file changed

Lines changed: 2 additions & 4 deletions

File tree

src/Analyzer/Resolve/QueryAnalyzer.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,7 @@ std::optional<JoinTableSide> QueryAnalyzer::getColumnSideFromJoinTree(const Quer
296296

297297
IdentifierResolveScope & QueryAnalyzer::createIdentifierResolveScope(const QueryTreeNodePtr & scope_node, IdentifierResolveScope * parent_scope)
298298
{
299-
auto [it, inserted] = node_to_scope_map.emplace(scope_node, IdentifierResolveScope{scope_node, parent_scope});
300-
if (!inserted)
301-
throw Exception(ErrorCodes::LOGICAL_ERROR, "Node {} already has a scope", scope_node->formatASTForErrorMessage());
299+
auto [it, _] = node_to_scope_map.emplace(scope_node, IdentifierResolveScope{scope_node, parent_scope});
302300
return it->second;
303301
}
304302

@@ -2323,7 +2321,7 @@ ProjectionNames QueryAnalyzer::resolveMatcher(QueryTreeNodePtr & matcher_node, I
23232321
if (apply_transformer->getApplyTransformerType() == ApplyColumnTransformerType::LAMBDA)
23242322
{
23252323
auto lambda_expression_to_resolve = expression_node->clone();
2326-
auto & lambda_scope = createIdentifierResolveScope(expression_node, /*parent_scope=*/&scope);
2324+
auto & lambda_scope = createIdentifierResolveScope(lambda_expression_to_resolve, /*parent_scope=*/&scope);
23272325
node_projection_names = resolveLambda(expression_node, lambda_expression_to_resolve, {node}, lambda_scope);
23282326
auto & lambda_expression_to_resolve_typed = lambda_expression_to_resolve->as<LambdaNode &>();
23292327
node = lambda_expression_to_resolve_typed.getExpression();

0 commit comments

Comments
 (0)