summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstanly <[email protected]>2023-03-30 13:11:14 +0300
committerstanly <[email protected]>2023-03-30 13:11:14 +0300
commita208151261bfd48ab7ef4724c52079852d745bb6 (patch)
tree9350c09f5c498d6284c841b296ffd417317a7525
parent58206a8c5c05c6fd7af5136f77778b580ff93a88 (diff)
decouple files / use c++ 20 features
-rw-r--r--ydb/core/tx/columnshard/blob.cpp2
-rw-r--r--ydb/core/tx/columnshard/engines/columns_table.h3
-rw-r--r--ydb/core/tx/columnshard/engines/defs.h43
-rw-r--r--ydb/core/tx/columnshard/engines/filter.cpp15
-rw-r--r--ydb/core/tx/columnshard/engines/filter.h17
-rw-r--r--ydb/core/tx/columnshard/engines/insert_table.cpp4
-rw-r--r--ydb/core/tx/columnshard/engines/predicate.h5
-rw-r--r--ydb/core/tx/columnshard/engines/scalars.cpp2
-rw-r--r--ydb/core/tx/columnshard/engines/scalars.h3
-rw-r--r--ydb/core/tx/columnshard/engines/tier_info.h4
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 {