]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.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, 4 Dec 2025 09:36:42 +0000 (09:36 +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>
src/include/rados/librados.hpp
src/librados/librados_cxx.cc

index 96ed711def0cb176cc1e76975e65165f63ae3e0a..145786752b28bb894c6636afc0c899d02aeb6ea7 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 223e8d4606c69cb2264e39c4849e771d07b4f271..44edf9d6aaf4d90556453fcc39c2b8a185494c44 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);