diff options
author | a-romanov <Anton.Romanov@ydb.tech> | 2023-01-25 16:40:47 +0300 |
---|---|---|
committer | a-romanov <Anton.Romanov@ydb.tech> | 2023-01-25 16:40:47 +0300 |
commit | 1d4c207da07e3932bc9b23dc3e0b409f4ffbe274 (patch) | |
tree | 62f37753dac419373cd564ba66124bb25d49dce5 | |
parent | 5f0b2322355dab51c50246070586eec0fb00671c (diff) | |
download | ydb-1d4c207da07e3932bc9b23dc3e0b409f4ffbe274.tar.gz |
WideTop[Sort] a little fix.
-rw-r--r-- | ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp | 6 | ||||
-rw-r--r-- | ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_top_sort_ut.cpp | 6 |
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); |