diff options
author | a-romanov <Anton.Romanov@ydb.tech> | 2023-09-18 13:07:51 +0300 |
---|---|---|
committer | a-romanov <Anton.Romanov@ydb.tech> | 2023-09-18 13:32:52 +0300 |
commit | 5a92b71af7de6553080153a01c343e6859ce93fc (patch) | |
tree | ab28a90c69c26d938116fdb14c6d691249925c6a | |
parent | 1c65609dbbbc8bdc00ee5138f0c0385e4c07c298 (diff) | |
download | ydb-5a92b71af7de6553080153a01c343e6859ce93fc.tar.gz |
YQL-15891 Fix leak temporary keys in WideCombiner.
-rw-r--r-- | ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp | 5 |
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; |