aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora-romanov <Anton.Romanov@ydb.tech>2023-09-18 13:07:51 +0300
committera-romanov <Anton.Romanov@ydb.tech>2023-09-18 13:32:52 +0300
commit5a92b71af7de6553080153a01c343e6859ce93fc (patch)
treeab28a90c69c26d938116fdb14c6d691249925c6a
parent1c65609dbbbc8bdc00ee5138f0c0385e4c07c298 (diff)
downloadydb-5a92b71af7de6553080153a01c343e6859ce93fc.tar.gz
YQL-15891 Fix leak temporary keys in WideCombiner.
-rw-r--r--ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp b/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp
index 68447f79f8..e9d75e7893 100644
--- a/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp
+++ b/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp
@@ -555,6 +555,11 @@ public:
block = next;
+ for (ui32 i = 0U; i < Nodes.KeyResultNodes.size(); ++i) {
+ if (Nodes.KeysOnItems[i] || Nodes.KeyResultNodes[i]->IsTemporaryValue())
+ ValueCleanup(Nodes.KeyResultNodes[i]->GetRepresentation(), keyPointers[i], ctx, block);
+ }
+
std::vector<Value*> stored(Nodes.StateNodes.size(), nullptr);
for (ui32 i = 0U; i < stored.size(); ++i) {
const bool hasDependency = Nodes.StateNodes[i]->GetDependencesCount() > 0U;