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

xuanwo pushed a commit to branch refactor-lister
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git

commit d90109a8ca6b66fea5c5642d78a50db7db35b710
Author: Xuanwo <[email protected]>
AuthorDate: Thu Dec 7 15:29:12 2023 +0800

    Fix kv
    
    Signed-off-by: Xuanwo <[email protected]>
---
 core/src/raw/adapters/kv/backend.rs       | 7 +++++--
 core/src/raw/adapters/typed_kv/backend.rs | 7 +++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/core/src/raw/adapters/kv/backend.rs 
b/core/src/raw/adapters/kv/backend.rs
index d1773a36d..51ab334d3 100644
--- a/core/src/raw/adapters/kv/backend.rs
+++ b/core/src/raw/adapters/kv/backend.rs
@@ -28,6 +28,7 @@ use futures::future::BoxFuture;
 use futures::FutureExt;
 
 use super::Adapter;
+use crate::raw::oio::HierarchyLister;
 use crate::raw::*;
 use crate::*;
 
@@ -69,8 +70,8 @@ impl<S: Adapter> Accessor for Backend<S> {
     type BlockingReader = oio::Cursor;
     type Writer = KvWriter<S>;
     type BlockingWriter = KvWriter<S>;
-    type Lister = KvLister;
-    type BlockingLister = KvLister;
+    type Lister = HierarchyLister<KvLister>;
+    type BlockingLister = HierarchyLister<KvLister>;
 
     fn info(&self) -> AccessorInfo {
         let mut am: AccessorInfo = self.kv.metadata().into();
@@ -185,6 +186,7 @@ impl<S: Adapter> Accessor for Backend<S> {
         let p = build_abs_path(&self.root, path);
         let res = self.kv.scan(&p).await?;
         let lister = KvLister::new(&self.root, res);
+        let lister = HierarchyLister::new(lister, path);
 
         Ok((RpList::default(), lister))
     }
@@ -193,6 +195,7 @@ impl<S: Adapter> Accessor for Backend<S> {
         let p = build_abs_path(&self.root, path);
         let res = self.kv.blocking_scan(&p)?;
         let lister = KvLister::new(&self.root, res);
+        let lister = HierarchyLister::new(lister, path);
 
         Ok((RpList::default(), lister))
     }
diff --git a/core/src/raw/adapters/typed_kv/backend.rs 
b/core/src/raw/adapters/typed_kv/backend.rs
index 3f0f3beae..a16a63de5 100644
--- a/core/src/raw/adapters/typed_kv/backend.rs
+++ b/core/src/raw/adapters/typed_kv/backend.rs
@@ -28,6 +28,7 @@ use futures::FutureExt;
 
 use super::Adapter;
 use super::Value;
+use crate::raw::oio::HierarchyLister;
 use crate::raw::*;
 use crate::*;
 
@@ -63,8 +64,8 @@ impl<S: Adapter> Accessor for Backend<S> {
     type BlockingReader = oio::Cursor;
     type Writer = KvWriter<S>;
     type BlockingWriter = KvWriter<S>;
-    type Lister = KvLister;
-    type BlockingLister = KvLister;
+    type Lister = HierarchyLister<KvLister>;
+    type BlockingLister = HierarchyLister<KvLister>;
 
     fn info(&self) -> AccessorInfo {
         let kv_info = self.kv.info();
@@ -189,6 +190,7 @@ impl<S: Adapter> Accessor for Backend<S> {
         let p = build_abs_path(&self.root, path);
         let res = self.kv.scan(&p).await?;
         let lister = KvLister::new(&self.root, res);
+        let lister = HierarchyLister::new(lister, path);
 
         Ok((RpList::default(), lister))
     }
@@ -197,6 +199,7 @@ impl<S: Adapter> Accessor for Backend<S> {
         let p = build_abs_path(&self.root, path);
         let res = self.kv.blocking_scan(&p)?;
         let lister = KvLister::new(&self.root, res);
+        let lister = HierarchyLister::new(lister, path);
 
         Ok((RpList::default(), lister))
     }

Reply via email to