Skip to content

Commit 51e1600

Browse files
do not wrap in __interpolate second time (on remote)
1 parent ed84cf5 commit 51e1600

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/Analyzer/Resolve/QueryAnalyzer.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3382,12 +3382,15 @@ NamesAndTypes QueryAnalyzer::resolveProjectionExpressionNodeList(QueryTreeNodePt
33823382

33833383
if (interpolate_list.contains(projection_names[i]))
33843384
{
3385-
auto f = std::make_shared<FunctionNode>("__interpolate");
3386-
f->getArguments().getNodes().push_back(projection_nodes[i]);
3387-
f->getArguments().getNodes().push_back(std::make_shared<ConstantNode>(projection_names[i]));
3388-
resolveOrdinaryFunctionNodeByName(*f, f->getFunctionName(), scope.context);
3389-
projection_nodes[i] = f;
3390-
scope.expression_argument_name_to_node.emplace(projection_names[i], projection_nodes[i]);
3385+
if (const auto * function_node = projection_nodes[i]->as<FunctionNode>(); !function_node || function_node->getFunctionName() != "__interpolate")
3386+
{
3387+
auto f = std::make_shared<FunctionNode>("__interpolate");
3388+
f->getArguments().getNodes().push_back(projection_nodes[i]);
3389+
f->getArguments().getNodes().push_back(std::make_shared<ConstantNode>(projection_names[i]));
3390+
resolveOrdinaryFunctionNodeByName(*f, f->getFunctionName(), scope.context);
3391+
projection_nodes[i] = f;
3392+
scope.expression_argument_name_to_node.emplace(projection_names[i], projection_nodes[i]);
3393+
}
33913394
}
33923395
}
33933396

0 commit comments

Comments
 (0)