summaryrefslogtreecommitdiffstats
path: root/yql/essentials/core/common_opt/yql_co_yqlselect.cpp
blob: 6ba214ba66ac9729c42a5ffcb19ba34cf4ea3c03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "yql_co_yqlselect.h"

#include <yql/essentials/core/yql_expr_optimize.h>
#include <yql/essentials/core/yql_module_helpers.h>
#include <yql/essentials/core/yql_sqlselect.h>

namespace NYql {

TExprNode::TPtr BuildYqlAggregationTraits(
    const TExprNode::TPtr& node,
    TExprNode::TPtr type,
    TExprNode::TPtr extractor,
    TExprContext& ctx,
    TOptimizeContext& optCtx)
{
    // clang-format off
    type = ctx.Builder(node->Pos())
        .Callable("ListType")
            .Add(0, std::move(type))
        .Seal()
        .Build();
    // clang-format on

    return NYql::ExpandYqlTraitsFactory(
        node->Child(0), std::move(type), std::move(extractor), ctx, *optCtx.Types);
}

} // namespace NYql