aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora-romanov <Anton.Romanov@ydb.tech>2023-01-25 16:40:47 +0300
committera-romanov <Anton.Romanov@ydb.tech>2023-01-25 16:40:47 +0300
commit1d4c207da07e3932bc9b23dc3e0b409f4ffbe274 (patch)
tree62f37753dac419373cd564ba66124bb25d49dce5
parent5f0b2322355dab51c50246070586eec0fb00671c (diff)
downloadydb-1d4c207da07e3932bc9b23dc3e0b409f4ffbe274.tar.gz
WideTop[Sort] a little fix.
-rw-r--r--ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp6
-rw-r--r--ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_top_sort_ut.cpp6
2 files changed, 5 insertions, 7 deletions
diff --git a/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp b/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp
index cdff6924995..6d45e6e83cb 100644
--- a/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp
+++ b/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp
@@ -41,10 +41,8 @@ private:
}
void ResetFields() {
- const auto ptr = Free.back();
- auto i = 0U;
- std::generate(Fields.begin(), Fields.end(), [&]() { return &static_cast<NUdf::TUnboxedValue&>(ptr[Indexes[i++]]); });
- Tongue = ptr;
+ auto ptr = Tongue = Free.back();
+ std::for_each(Indexes.cbegin(), Indexes.cend(), [&](ui32 index) { Fields[index] = static_cast<NUdf::TUnboxedValue*>(ptr++); });
}
public:
TState(TMemoryUsageInfo* memInfo, ui64 count, const bool* directons, const TCompareFunc& compare, const std::vector<ui32>& indexes)
diff --git a/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_top_sort_ut.cpp b/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_top_sort_ut.cpp
index aa91f211d1a..a60fcd8af48 100644
--- a/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_top_sort_ut.cpp
+++ b/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_top_sort_ut.cpp
@@ -535,10 +535,10 @@ Y_UNIT_TEST_SUITE(TMiniKQLWideTopTest) {
[&](TRuntimeNode item) -> TRuntimeNode::TList {
const auto utf = pb.ToString<true>(pb.Nth(item, 1U));
const auto day = pb.StrictFromString(pb.Substring(utf, pb.NewDataLiteral<ui32>(8U), pb.NewDataLiteral<ui32>(2U)), pb.NewDataType(NUdf::EDataSlot::Uint8));
- return {utf, pb.Nth(item, 0U), day, pb.Nth(item, 1U)};
+ return {pb.Nth(item, 0U), utf, day, pb.Nth(item, 1U)};
}),
- pb.NewDataLiteral<ui64>(7ULL), {{2U, pb.NewDataLiteral<bool>(true)}, {1U, pb.NewDataLiteral<bool>(false)}}),
- [&](TRuntimeNode::TList items) -> TRuntimeNode { return items.front(); }
+ pb.NewDataLiteral<ui64>(7ULL), {{2U, pb.NewDataLiteral<bool>(true)}, {0U, pb.NewDataLiteral<bool>(false)}}),
+ [&](TRuntimeNode::TList items) -> TRuntimeNode { return items[1]; }
));
const auto graph = setup.BuildGraph(pgmReturn);