diff options
author | stanly <[email protected]> | 2023-03-30 13:11:14 +0300 |
---|---|---|
committer | stanly <[email protected]> | 2023-03-30 13:11:14 +0300 |
commit | a208151261bfd48ab7ef4724c52079852d745bb6 (patch) | |
tree | 9350c09f5c498d6284c841b296ffd417317a7525 | |
parent | 58206a8c5c05c6fd7af5136f77778b580ff93a88 (diff) |
decouple files / use c++ 20 features
-rw-r--r-- | ydb/core/tx/columnshard/blob.cpp | 2 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/columns_table.h | 3 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/defs.h | 43 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/filter.cpp | 15 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/filter.h | 17 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/insert_table.cpp | 4 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/predicate.h | 5 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/scalars.cpp | 2 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/scalars.h | 3 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/engines/tier_info.h | 4 |
10 files changed, 46 insertions, 52 deletions
diff --git a/ydb/core/tx/columnshard/blob.cpp b/ydb/core/tx/columnshard/blob.cpp index b0771a75f0f..3fc3bf799e5 100644 --- a/ydb/core/tx/columnshard/blob.cpp +++ b/ydb/core/tx/columnshard/blob.cpp @@ -1,8 +1,6 @@ #include "blob.h" #include "defs.h" -#include <ydb/core/tx/columnshard/engines/defs.h> - #include <charconv> namespace NKikimr::NOlap { diff --git a/ydb/core/tx/columnshard/engines/columns_table.h b/ydb/core/tx/columnshard/engines/columns_table.h index 7b27c38bedc..99021dcde35 100644 --- a/ydb/core/tx/columnshard/engines/columns_table.h +++ b/ydb/core/tx/columnshard/engines/columns_table.h @@ -1,7 +1,10 @@ #pragma once + #include "defs.h" #include "db_wrapper.h" +#include <ydb/core/tx/columnshard/blob.h> + namespace NKikimr::NOlap { struct TColumnRecord { diff --git a/ydb/core/tx/columnshard/engines/defs.h b/ydb/core/tx/columnshard/engines/defs.h index 51801405b40..7c271b1888b 100644 --- a/ydb/core/tx/columnshard/engines/defs.h +++ b/ydb/core/tx/columnshard/engines/defs.h @@ -1,16 +1,8 @@ #pragma once + #include <ydb/core/base/defs.h> -#include <ydb/core/base/events.h> -#include <ydb/core/util/yverify_stream.h> -#include <ydb/core/formats/arrow_helpers.h> -#include <ydb/core/formats/program.h> -#include <ydb/core/formats/replace_key.h> -#include <ydb/core/formats/switch_type.h> +#include <ydb/core/base/logoblob.h> #include <ydb/core/tx/ctor_logger.h> -#include <ydb/core/tx/columnshard/blob.h> -#include <contrib/libs/apache/arrow/cpp/src/arrow/compute/api.h> -#include <contrib/libs/apache/arrow/cpp/src/arrow/util/compression.h> -#include <util/generic/set.h> namespace NKikimr::NOlap { @@ -18,33 +10,23 @@ using TLogThis = TCtorLogger<NKikimrServices::TX_COLUMNSHARD>; enum class TWriteId : ui64 {}; -inline TWriteId operator ++(TWriteId& w) { w = TWriteId{ui64(w) + 1}; return w; } +inline TWriteId operator ++(TWriteId& w) noexcept { w = TWriteId{ui64(w) + 1}; return w; } struct TSnapshot { ui64 PlanStep{0}; ui64 TxId{0}; - bool IsZero() const { + constexpr bool IsZero() const noexcept { return PlanStep == 0 && TxId == 0; } - bool Valid() const { + constexpr bool Valid() const noexcept { return PlanStep && TxId; } - bool operator == (const TSnapshot& snap) const { - return (PlanStep == snap.PlanStep) && (TxId == snap.TxId); - } - - bool operator < (const TSnapshot& snap) const { - return (PlanStep < snap.PlanStep) || (PlanStep == snap.PlanStep && TxId < snap.TxId); - } - - bool operator <= (const TSnapshot& snap) const { - return (PlanStep < snap.PlanStep) || (PlanStep == snap.PlanStep && TxId <= snap.TxId); - } + constexpr auto operator <=> (const TSnapshot&) const noexcept = default; - static TSnapshot Max() { + static constexpr TSnapshot Max() noexcept { return TSnapshot{(ui64)-1ll, (ui64)-1ll}; } @@ -53,12 +35,12 @@ struct TSnapshot { } }; -inline bool snapLess(ui64 planStep1, ui64 txId1, ui64 planStep2, ui64 txId2) { - return TSnapshot{planStep1, txId1} < TSnapshot{planStep2, txId2}; +inline constexpr bool SnapLess(ui64 planStep1, ui64 txId1, ui64 planStep2, ui64 txId2) noexcept { + return std::less<TSnapshot>()(TSnapshot{planStep1, txId1}, TSnapshot{planStep2, txId2}); } -inline bool snapLessOrEqual(ui64 planStep1, ui64 txId1, ui64 planStep2, ui64 txId2) { - return TSnapshot{planStep1, txId1} <= TSnapshot{planStep2, txId2}; +inline constexpr bool SnapLessOrEqual(ui64 planStep1, ui64 txId1, ui64 planStep2, ui64 txId2) noexcept { + return std::less_equal<TSnapshot>()(TSnapshot{planStep1, txId1}, TSnapshot{planStep2, txId2}); } @@ -69,7 +51,7 @@ public: virtual ui32 GetGroup(const TLogoBlobID& blobId) const = 0; }; -} +} // namespace NKikimr::NOlap template<> struct THash<NKikimr::NOlap::TWriteId> { @@ -77,4 +59,3 @@ struct THash<NKikimr::NOlap::TWriteId> { return THash<ui64>()(ui64(x)); } }; - diff --git a/ydb/core/tx/columnshard/engines/filter.cpp b/ydb/core/tx/columnshard/engines/filter.cpp index 43fb510c653..bd2fd8235be 100644 --- a/ydb/core/tx/columnshard/engines/filter.cpp +++ b/ydb/core/tx/columnshard/engines/filter.cpp @@ -1,6 +1,7 @@ -#include "defs.h" #include "filter.h" +#include "defs.h" #include "indexed_read_data.h" + #include <ydb/core/formats/arrow_helpers.h> #include <ydb/core/formats/custom_registry.h> @@ -17,8 +18,8 @@ void TFilteredBatch::ApplyFilter() { Filter.clear(); } -std::vector<bool> MakeSnapshotFilter(std::shared_ptr<arrow::RecordBatch> batch, - std::shared_ptr<arrow::Schema> snapSchema, +std::vector<bool> MakeSnapshotFilter(const std::shared_ptr<arrow::RecordBatch>& batch, + const std::shared_ptr<arrow::Schema>& snapSchema, ui64 planStep, ui64 txId) { Y_VERIFY(batch); Y_VERIFY(snapSchema); @@ -39,7 +40,7 @@ std::vector<bool> MakeSnapshotFilter(std::shared_ptr<arrow::RecordBatch> batch, const auto* rawIds = std::static_pointer_cast<arrow::UInt64Array>(ids)->raw_values(); for (int i = 0; i < steps->length(); ++i) { - bool value = snapLessOrEqual(rawSteps[i], rawIds[i], planStep, txId); + bool value = SnapLessOrEqual(rawSteps[i], rawIds[i], planStep, txId); alwaysTrue = alwaysTrue && value; bits.push_back(value); } @@ -52,7 +53,7 @@ std::vector<bool> MakeSnapshotFilter(std::shared_ptr<arrow::RecordBatch> batch, return bits; } -std::vector<bool> MakeReplaceFilter(std::shared_ptr<arrow::RecordBatch> batch, +std::vector<bool> MakeReplaceFilter(const std::shared_ptr<arrow::RecordBatch>& batch, THashSet<NArrow::TReplaceKey>& keys) { bool alwaysTrue = true; std::vector<bool> bits; @@ -78,7 +79,7 @@ std::vector<bool> MakeReplaceFilter(std::shared_ptr<arrow::RecordBatch> batch, return bits; } -std::vector<bool> MakeReplaceFilterLastWins(std::shared_ptr<arrow::RecordBatch> batch, +std::vector<bool> MakeReplaceFilterLastWins(const std::shared_ptr<arrow::RecordBatch>& batch, THashSet<NArrow::TReplaceKey>& keys) { if (!batch->num_rows()) { return {}; @@ -136,7 +137,7 @@ TFilteredBatch FilterPortion(const std::shared_ptr<arrow::RecordBatch>& portion, if (filter.size() && !numRows) { return {}; } - return TFilteredBatch{portion, filter}; + return TFilteredBatch{portion, std::move(filter)}; } TFilteredBatch FilterNotIndexed(const std::shared_ptr<arrow::RecordBatch>& batch, const TReadMetadata& readMetadata) { diff --git a/ydb/core/tx/columnshard/engines/filter.h b/ydb/core/tx/columnshard/engines/filter.h index ddc5e4dbf40..c2196cba8b0 100644 --- a/ydb/core/tx/columnshard/engines/filter.h +++ b/ydb/core/tx/columnshard/engines/filter.h @@ -1,4 +1,6 @@ #pragma once + +#include <ydb/core/formats/program.h> #include <ydb/core/formats/replace_key.h> namespace NKikimr::NOlap { @@ -17,17 +19,12 @@ struct TFilteredBatch { void ApplyFilter(); }; -std::vector<bool> MakeSnapshotFilter(std::shared_ptr<arrow::RecordBatch> batch, - std::shared_ptr<arrow::Schema> snapSchema, +std::vector<bool> MakeSnapshotFilter(const std::shared_ptr<arrow::RecordBatch>& batch, + const std::shared_ptr<arrow::Schema>& snapSchema, ui64 planStep, ui64 txId); -std::vector<bool> MakeReplaceFilter(std::shared_ptr<arrow::RecordBatch> batch, THashSet<NArrow::TReplaceKey>& keys); -std::vector<bool> MakeReplaceFilterLastWins(std::shared_ptr<arrow::RecordBatch> batch, THashSet<NArrow::TReplaceKey>& keys); -#if 0 -std::vector<bool> MakeReplaceFilter(std::shared_ptr<arrow::RecordBatch> batch, - const THashSet<NArrow::TReplaceKey>& staticKeys, - THashSet<NArrow::TReplaceKey>& keys); -#endif +std::vector<bool> MakeReplaceFilter(const std::shared_ptr<arrow::RecordBatch>& batch, THashSet<NArrow::TReplaceKey>& keys); +std::vector<bool> MakeReplaceFilterLastWins(const std::shared_ptr<arrow::RecordBatch>& batch, THashSet<NArrow::TReplaceKey>& keys); void ReplaceDupKeys(std::shared_ptr<arrow::RecordBatch>& batch, const std::shared_ptr<arrow::Schema>& replaceSchema, bool lastWins = false); @@ -37,4 +34,4 @@ TFilteredBatch FilterPortion(const std::shared_ptr<arrow::RecordBatch>& batch, c TFilteredBatch FilterNotIndexed(const std::shared_ptr<arrow::RecordBatch>& batch, const TReadMetadata& readMetadata); TFilteredBatch EarlyFilter(const std::shared_ptr<arrow::RecordBatch>& batch, std::shared_ptr<NSsa::TProgram> ssa); -} +} // namespace NKikimr::NOlap diff --git a/ydb/core/tx/columnshard/engines/insert_table.cpp b/ydb/core/tx/columnshard/engines/insert_table.cpp index 64f0737e9fe..f7557619294 100644 --- a/ydb/core/tx/columnshard/engines/insert_table.cpp +++ b/ydb/core/tx/columnshard/engines/insert_table.cpp @@ -196,8 +196,8 @@ std::vector<TCommittedBlob> TInsertTable::Read(ui64 pathId, ui64 plan, ui64 txId std::vector<TCommittedBlob> ret; ret.reserve(committed->size()); - for (auto& data : *committed) { - if (snapLessOrEqual(data.ShardOrPlan, data.WriteTxId, plan, txId)) { + for (const auto& data : *committed) { + if (SnapLessOrEqual(data.ShardOrPlan, data.WriteTxId, plan, txId)) { ret.emplace_back(TCommittedBlob{data.BlobId, data.ShardOrPlan, data.WriteTxId}); } } diff --git a/ydb/core/tx/columnshard/engines/predicate.h b/ydb/core/tx/columnshard/engines/predicate.h index 37bd0cb3016..59e5e01eeaa 100644 --- a/ydb/core/tx/columnshard/engines/predicate.h +++ b/ydb/core/tx/columnshard/engines/predicate.h @@ -1,6 +1,11 @@ #pragma once + #include "defs.h" +#include <ydb/core/formats/arrow_helpers.h> +#include <ydb/core/formats/program.h> +#include <ydb/core/formats/switch_type.h> + namespace NKikimr::NOlap { struct TPredicate { diff --git a/ydb/core/tx/columnshard/engines/scalars.cpp b/ydb/core/tx/columnshard/engines/scalars.cpp index d23b9e7e729..f7788b8fd1a 100644 --- a/ydb/core/tx/columnshard/engines/scalars.cpp +++ b/ydb/core/tx/columnshard/engines/scalars.cpp @@ -1,4 +1,6 @@ #include "scalars.h" + +#include <ydb/core/formats/switch_type.h> #include <ydb/core/util/yverify_stream.h> namespace NKikimr::NOlap { diff --git a/ydb/core/tx/columnshard/engines/scalars.h b/ydb/core/tx/columnshard/engines/scalars.h index 02d6dac893a..a7fc346f686 100644 --- a/ydb/core/tx/columnshard/engines/scalars.h +++ b/ydb/core/tx/columnshard/engines/scalars.h @@ -1,6 +1,9 @@ #pragma once + #include "defs.h" + #include <ydb/core/protos/tx_columnshard.pb.h> +#include <contrib/libs/apache/arrow/cpp/src/arrow/compute/api.h> namespace NKikimr::NOlap { diff --git a/ydb/core/tx/columnshard/engines/tier_info.h b/ydb/core/tx/columnshard/engines/tier_info.h index 61c8093e8b8..e7bd6fcc8c5 100644 --- a/ydb/core/tx/columnshard/engines/tier_info.h +++ b/ydb/core/tx/columnshard/engines/tier_info.h @@ -1,7 +1,11 @@ #pragma once + #include "defs.h" #include "scalars.h" +#include <ydb/core/formats/arrow_helpers.h> +#include <contrib/libs/apache/arrow/cpp/src/arrow/util/compression.h> + namespace NKikimr::NOlap { struct TCompression { |