]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
librados: Add omap_rm_range function to ObjectWriteOperation
authorMatty Williams <Matty.Williams@ibm.com>
Mon, 1 Dec 2025 12:16:29 +0000 (12:16 +0000)
committerMatty Williams <Matty.Williams@ibm.com>
Thu, 26 Feb 2026 09:38:49 +0000 (09:38 +0000)
Add librados::ObjectWriteOperation::omap_rm_keys function.
Add librados::IoCtx::omap_rm_keys function.

Fixes: https://tracker.ceph.com/issues/74013
Signed-off-by: Matty Williams <Matty.Williams@ibm.com>
(cherry picked from commit 6c3675cb831db7a603b45d4cc0b3c1549e53a12d)

src/include/rados/librados.hpp
src/librados/librados_cxx.cc

index 0a6ac40dbc1b6e107e173cd69ed50c41784d9ee2..902402e076023107ecc715c9f912117cd125a214 100644 (file)
@@ -456,6 +456,14 @@ inline namespace v14_2_0 {
      */
     void omap_rm_keys(const std::set<std::string> &to_rm);
 
+    /**
+     * Clears keys in the range [start, end)
+     * 
+     * @param start [in] start of key range to remove (inclusive)
+     * @param end [in] end of key range to remove (exclusive)
+     */
+    void omap_rm_range(const std::string &start, const std::string &end);
+
     /**
      * Copy an object
      *
@@ -938,6 +946,9 @@ inline namespace v14_2_0 {
     int omap_clear(const std::string& oid);
     int omap_rm_keys(const std::string& oid,
                      const std::set<std::string>& keys);
+    int omap_rm_range(const std::string& oid,
+                      const std::string& start,
+                      const std::string& end);
 
     void snap_set_read(snap_t seq);
     int selfmanaged_snap_set_write_ctx(snap_t seq, std::vector<snap_t>& snaps);
index 483c6a8f753cfd228bbccd1371fa2628744e20f7..87067c3a12d66a34121f88f35df9fc628b710870 100644 (file)
@@ -572,6 +572,15 @@ void librados::ObjectWriteOperation::omap_rm_keys(
   o->omap_rm_keys(to_rm);
 }
 
+void librados::ObjectWriteOperation::omap_rm_range(
+  const std::string &start,
+  const std::string &end)
+{
+  ceph_assert(impl);
+  ::ObjectOperation *o = &impl->o;
+  o->omap_rm_range(start, end);
+}
+
 void librados::ObjectWriteOperation::copy_from(const std::string& src,
                                               const IoCtx& src_ioctx,
                                               uint64_t src_version,
@@ -1517,6 +1526,15 @@ int librados::IoCtx::omap_rm_keys(const std::string& oid,
   return operate(oid, &op);
 }
 
+int librados::IoCtx::omap_rm_range(const std::string& oid,
+                                   const std::string& start,
+                                   const std::string& end)
+{
+  ObjectWriteOperation op;
+  op.omap_rm_range(start, end);
+  return operate(oid, &op);
+}
+
 int librados::IoCtx::operate(const std::string& oid, librados::ObjectWriteOperation *o)
 {
   object_t obj(oid);