summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <[email protected]>2022-07-27 19:29:57 +0300
committervvvv <[email protected]>2022-07-27 19:29:57 +0300
commitb06c90c50f46fa60dab756015ca2d3443184393f (patch)
tree7527869c2cecea02d506fe97c058e4ce6890a7d9
parentdba73ef8c21ba1445215d446093a29104125c945 (diff)
support of null as merge function
-rw-r--r--ydb/library/yql/sql/v1/aggregation.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/ydb/library/yql/sql/v1/aggregation.cpp b/ydb/library/yql/sql/v1/aggregation.cpp
index c59f39d3dfd..64a9c657db9 100644
--- a/ydb/library/yql/sql/v1/aggregation.cpp
+++ b/ydb/library/yql/sql/v1/aggregation.cpp
@@ -1155,7 +1155,9 @@ private:
Lambdas[0] = BuildLambda(Pos, Y("value", "parent"), Y("NamedApply", exprs[adjustArgsCount], Q(Y("value")), Y("AsStruct"), Y("DependsOn", "parent")));
Lambdas[1] = BuildLambda(Pos, Y("value", "state", "parent"), Y("NamedApply", exprs[adjustArgsCount + 1], Q(Y("state", "value")), Y("AsStruct"), Y("DependsOn", "parent")));
- Lambdas[2] = BuildLambda(Pos, Y("one", "two"), Y("Apply", exprs[adjustArgsCount + 2], "one", "two"));
+ Lambdas[2] = BuildLambda(Pos, Y("one", "two"), Y("IfType", exprs[adjustArgsCount + 2], Y("NullType"),
+ BuildLambda(Pos, Y(), Y("Void")),
+ BuildLambda(Pos, Y(), Y("Apply", exprs[adjustArgsCount + 2], "one", "two"))));
for (size_t i = 3U; i < Lambdas.size(); ++i) {
const auto j = adjustArgsCount + i;