diff options
author | Alexander Avdonkin <aavdonkin@yandex.ru> | 2024-11-28 12:08:43 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-28 12:08:43 +0300 |
commit | 4da928050f32fee823b85fd6d6ee322ce4187892 (patch) | |
tree | b1670299a686b1d4afb6d8a7501f3114ae8a9040 | |
parent | 31e0e4623992fbd723f2a304f98dd0d5bbb34ebe (diff) | |
download | ydb-4da928050f32fee823b85fd6d6ee322ce4187892.tar.gz |
Write last record with the same key from batch (#12048)
-rw-r--r-- | ydb/core/formats/arrow/permutations.cpp | 8 | ||||
-rw-r--r-- | ydb/core/kqp/ut/olap/kqp_olap_ut.cpp | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/ydb/core/formats/arrow/permutations.cpp b/ydb/core/formats/arrow/permutations.cpp index 7e68cc91f26..47e8037b860 100644 --- a/ydb/core/formats/arrow/permutations.cpp +++ b/ydb/core/formats/arrow/permutations.cpp @@ -41,10 +41,14 @@ std::shared_ptr<arrow::UInt64Array> MakeSortPermutation(const std::vector<std::s } if (haveNulls) { - std::sort(points.begin(), points.end()); + std::sort(points.begin(), points.end(), [](const TRawReplaceKey& a, const TRawReplaceKey& b) { + auto cmp = a <=> b; + return cmp == std::partial_ordering::equivalent ? a.GetPosition() > b.GetPosition() : cmp == std::partial_ordering::less; + }); } else { std::sort(points.begin(), points.end(), [](const TRawReplaceKey& a, const TRawReplaceKey& b) { - return a.CompareNotNull(b) == std::partial_ordering::less; + auto cmp = a.CompareNotNull(b); + return cmp == std::partial_ordering::equivalent ? a.GetPosition() > b.GetPosition() : cmp == std::partial_ordering::less; }); } diff --git a/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp b/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp index b43132cb9a6..93e1d345b92 100644 --- a/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp +++ b/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp @@ -2443,7 +2443,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { // Cout << "Wait indexation..." << Endl; // Sleep(TDuration::Seconds(2)); // } - testHelper.ReadData("SELECT * FROM `/Root/ColumnTableTest` WHERE id=2", "[[2;\"test_res_2\";#;[\"val1\"]]]"); + testHelper.ReadData("SELECT * FROM `/Root/ColumnTableTest` WHERE id=2", "[[2;\"test_res_2\";#;[\"val2\"]]]"); } Y_UNIT_TEST(BulkUpsertUpdate) { |