Skip to content

Commit

Permalink
Fix GetOptions in C++17 build (#2213)
Browse files Browse the repository at this point in the history
Co-authored-by: hulk <[email protected]>
  • Loading branch information
mapleFU and git-hulk authored Apr 1, 2024
1 parent 5c8b6cb commit c588a6d
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 20 deletions.
2 changes: 1 addition & 1 deletion src/storage/redis_db.cc
Original file line number Diff line number Diff line change
Expand Up @@ -636,7 +636,7 @@ rocksdb::Status SubKeyScanner::Scan(RedisType type, const Slice &user_key, const
std::string ns_key = AppendNamespacePrefix(user_key);
Metadata metadata(type, false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, {type}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, {type}, ns_key, &metadata);
if (!s.ok()) return s;

rocksdb::ReadOptions read_options = storage_->DefaultScanOptions();
Expand Down
3 changes: 3 additions & 0 deletions src/storage/redis_db.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ class Database {
// If snapshot is not nullptr, read from the specified snapshot,
// otherwise read from the "latest" snapshot.
const rocksdb::Snapshot *snapshot = nullptr;

GetOptions() = default;
explicit GetOptions(const rocksdb::Snapshot *ss) : snapshot(ss) {}
};

explicit Database(engine::Storage *storage, std::string ns = "");
Expand Down
8 changes: 4 additions & 4 deletions src/types/redis_bitmap.cc
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ rocksdb::Status Bitmap::GetBit(const Slice &user_key, uint32_t bit_offset, bool

BitmapMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata, &raw_value);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata, &raw_value);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

if (metadata.Type() == kRedisString) {
Expand Down Expand Up @@ -146,7 +146,7 @@ rocksdb::Status Bitmap::GetString(const Slice &user_key, const uint32_t max_btos

BitmapMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata, &raw_value);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata, &raw_value);
if (!s.ok()) return s;
if (metadata.size > max_btos_size) {
return rocksdb::Status::Aborted(kErrBitmapStringOutOfRange);
Expand Down Expand Up @@ -232,7 +232,7 @@ rocksdb::Status Bitmap::BitCount(const Slice &user_key, int64_t start, int64_t s

BitmapMetadata metadata(false);
std::optional<LatestSnapShot> ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss->GetSnapShot()}, ns_key, &metadata, &raw_value);
rocksdb::Status s = GetMetadata(GetOptions{ss->GetSnapShot()}, ns_key, &metadata, &raw_value);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

/* Convert negative indexes */
Expand Down Expand Up @@ -317,7 +317,7 @@ rocksdb::Status Bitmap::BitPos(const Slice &user_key, bool bit, int64_t start, i

BitmapMetadata metadata(false);
std::optional<LatestSnapShot> ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss->GetSnapShot()}, ns_key, &metadata, &raw_value);
rocksdb::Status s = GetMetadata(GetOptions{ss->GetSnapShot()}, ns_key, &metadata, &raw_value);
if (!s.ok() && !s.IsNotFound()) return s;
if (s.IsNotFound()) {
*pos = bit ? -1 : 0;
Expand Down
8 changes: 4 additions & 4 deletions src/types/redis_hash.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ rocksdb::Status Hash::Get(const Slice &user_key, const Slice &field, std::string
std::string ns_key = AppendNamespacePrefix(user_key);
HashMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(Database::GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(Database::GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s;
rocksdb::ReadOptions read_options;
read_options.snapshot = ss.GetSnapShot();
Expand Down Expand Up @@ -160,7 +160,7 @@ rocksdb::Status Hash::MGet(const Slice &user_key, const std::vector<Slice> &fiel
std::string ns_key = AppendNamespacePrefix(user_key);
HashMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) {
return s;
}
Expand Down Expand Up @@ -291,7 +291,7 @@ rocksdb::Status Hash::RangeByLex(const Slice &user_key, const RangeLexSpec &spec
std::string ns_key = AppendNamespacePrefix(user_key);
HashMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

std::string start_member = spec.reversed ? spec.max : spec.min;
Expand Down Expand Up @@ -347,7 +347,7 @@ rocksdb::Status Hash::GetAll(const Slice &user_key, std::vector<FieldValue> *fie
std::string ns_key = AppendNamespacePrefix(user_key);
HashMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

std::string prefix_key = InternalKey(ns_key, "", metadata.version, storage_->IsSlotIdEncoded()).Encode();
Expand Down
4 changes: 2 additions & 2 deletions src/types/redis_list.cc
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ rocksdb::Status List::Index(const Slice &user_key, int index, std::string *elem)
std::string ns_key = AppendNamespacePrefix(user_key);
ListMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s;

if (index < 0) index += static_cast<int>(metadata.size);
Expand All @@ -360,7 +360,7 @@ rocksdb::Status List::Range(const Slice &user_key, int start, int stop, std::vec
std::string ns_key = AppendNamespacePrefix(user_key);
ListMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

if (start < 0) start = static_cast<int>(metadata.size) + start;
Expand Down
4 changes: 2 additions & 2 deletions src/types/redis_set.cc
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ rocksdb::Status Set::Members(const Slice &user_key, std::vector<std::string> *me
SetMetadata metadata(false);
LatestSnapShot ss(storage_);

rocksdb::Status s = GetMetadata(Database::GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(Database::GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

std::string prefix = InternalKey(ns_key, "", metadata.version, storage_->IsSlotIdEncoded()).Encode();
Expand Down Expand Up @@ -178,7 +178,7 @@ rocksdb::Status Set::MIsMember(const Slice &user_key, const std::vector<Slice> &

SetMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(Database::GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(Database::GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s;

rocksdb::ReadOptions read_options;
Expand Down
6 changes: 3 additions & 3 deletions src/types/redis_sortedint.cc
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ rocksdb::Status Sortedint::Range(const Slice &user_key, uint64_t cursor_id, uint

SortedintMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

std::string start_buf;
Expand Down Expand Up @@ -159,7 +159,7 @@ rocksdb::Status Sortedint::RangeByValue(const Slice &user_key, SortedintRangeSpe

SortedintMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

std::string start_buf;
Expand Down Expand Up @@ -209,7 +209,7 @@ rocksdb::Status Sortedint::MExist(const Slice &user_key, const std::vector<uint6

SortedintMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s;

rocksdb::ReadOptions read_options;
Expand Down
8 changes: 4 additions & 4 deletions src/types/redis_zset.cc
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ rocksdb::Status ZSet::RangeByRank(const Slice &user_key, const RangeRankSpec &sp
if (spec.with_deletion) lock_guard.emplace(storage_->GetLockManager(), ns_key);
ZSetMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

int start = spec.start;
Expand Down Expand Up @@ -555,7 +555,7 @@ rocksdb::Status ZSet::Rank(const Slice &user_key, const Slice &member, bool reve
std::string ns_key = AppendNamespacePrefix(user_key);
ZSetMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

rocksdb::ReadOptions read_options = storage_->DefaultScanOptions();
Expand Down Expand Up @@ -832,7 +832,7 @@ rocksdb::Status ZSet::MGet(const Slice &user_key, const std::vector<Slice> &memb
std::string ns_key = AppendNamespacePrefix(user_key);
ZSetMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s;

rocksdb::ReadOptions read_options;
Expand All @@ -857,7 +857,7 @@ rocksdb::Status ZSet::GetAllMemberScores(const Slice &user_key, std::vector<Memb
std::string ns_key = AppendNamespacePrefix(user_key);
ZSetMetadata metadata(false);
LatestSnapShot ss(storage_);
rocksdb::Status s = GetMetadata(GetOptions{.snapshot = ss.GetSnapShot()}, ns_key, &metadata);
rocksdb::Status s = GetMetadata(GetOptions{ss.GetSnapShot()}, ns_key, &metadata);
if (!s.ok()) return s.IsNotFound() ? rocksdb::Status::OK() : s;

std::string prefix_key = InternalKey(ns_key, "", metadata.version, storage_->IsSlotIdEncoded()).Encode();
Expand Down

0 comments on commit c588a6d

Please sign in to comment.