This is an automated email from the ASF dual-hosted git repository.

maplefu pushed a commit to branch unstable
in repository https://gitbox.apache.org/repos/asf/kvrocks.git


The following commit(s) were added to refs/heads/unstable by this push:
     new c588a6d8 Fix GetOptions in C++17 build (#2213)
c588a6d8 is described below

commit c588a6d8f46f92627bb3928ea3f6cf1e7ef3ff8a
Author: mwish <[email protected]>
AuthorDate: Mon Apr 1 19:32:30 2024 +0800

    Fix GetOptions in C++17 build (#2213)
    
    Co-authored-by: hulk <[email protected]>
---
 src/storage/redis_db.cc      | 2 +-
 src/storage/redis_db.h       | 3 +++
 src/types/redis_bitmap.cc    | 8 ++++----
 src/types/redis_hash.cc      | 8 ++++----
 src/types/redis_list.cc      | 4 ++--
 src/types/redis_set.cc       | 4 ++--
 src/types/redis_sortedint.cc | 6 +++---
 src/types/redis_zset.cc      | 8 ++++----
 8 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/src/storage/redis_db.cc b/src/storage/redis_db.cc
index e75a19b0..4912199c 100644
--- a/src/storage/redis_db.cc
+++ b/src/storage/redis_db.cc
@@ -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();
diff --git a/src/storage/redis_db.h b/src/storage/redis_db.h
index 493b83c3..6878113b 100644
--- a/src/storage/redis_db.h
+++ b/src/storage/redis_db.h
@@ -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 = "");
diff --git a/src/types/redis_bitmap.cc b/src/types/redis_bitmap.cc
index 0252420e..3651f910 100644
--- a/src/types/redis_bitmap.cc
+++ b/src/types/redis_bitmap.cc
@@ -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) {
@@ -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);
@@ -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 */
@@ -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;
diff --git a/src/types/redis_hash.cc b/src/types/redis_hash.cc
index 40e5a424..c4d60685 100644
--- a/src/types/redis_hash.cc
+++ b/src/types/redis_hash.cc
@@ -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();
@@ -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;
   }
@@ -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;
@@ -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();
diff --git a/src/types/redis_list.cc b/src/types/redis_list.cc
index 96b90c44..21edda04 100644
--- a/src/types/redis_list.cc
+++ b/src/types/redis_list.cc
@@ -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);
@@ -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;
diff --git a/src/types/redis_set.cc b/src/types/redis_set.cc
index 2e5074ee..0c7e4009 100644
--- a/src/types/redis_set.cc
+++ b/src/types/redis_set.cc
@@ -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();
@@ -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;
diff --git a/src/types/redis_sortedint.cc b/src/types/redis_sortedint.cc
index 4edcff1c..7de9e70a 100644
--- a/src/types/redis_sortedint.cc
+++ b/src/types/redis_sortedint.cc
@@ -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;
@@ -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;
@@ -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;
diff --git a/src/types/redis_zset.cc b/src/types/redis_zset.cc
index 8e08ea4e..4d2d92d1 100644
--- a/src/types/redis_zset.cc
+++ b/src/types/redis_zset.cc
@@ -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;
@@ -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();
@@ -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;
@@ -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();

Reply via email to