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

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

commit fadf4e6147773d8d106c764b1bfb66e5dfd669a2
Author: Xuanwo <[email protected]>
AuthorDate: Tue Nov 21 16:39:35 2023 +0800

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

diff --git a/core/src/raw/adapters/kv/backend.rs 
b/core/src/raw/adapters/kv/backend.rs
index 856f65f1f..ed821bc10 100644
--- a/core/src/raw/adapters/kv/backend.rs
+++ b/core/src/raw/adapters/kv/backend.rs
@@ -160,7 +160,7 @@ impl<S: Adapter> Accessor for Backend<S> {
     async fn stat(&self, path: &str, _: OpStat) -> Result<RpStat> {
         let p = build_abs_path(&self.root, path);
 
-        if p.is_empty() || p.ends_with('/') {
+        if p == build_abs_path(&self.root, "") {
             Ok(RpStat::new(Metadata::new(EntryMode::DIR)))
         } else {
             let bs = self.kv.get(&p).await?;
@@ -176,7 +176,7 @@ impl<S: Adapter> Accessor for Backend<S> {
     fn blocking_stat(&self, path: &str, _: OpStat) -> Result<RpStat> {
         let p = build_abs_path(&self.root, path);
 
-        if p.is_empty() || p.ends_with('/') {
+        if p == build_abs_path(&self.root, "") {
             Ok(RpStat::new(Metadata::new(EntryMode::DIR)))
         } else {
             let bs = self.kv.blocking_get(&p)?;
diff --git a/core/src/raw/adapters/typed_kv/backend.rs 
b/core/src/raw/adapters/typed_kv/backend.rs
index bf59510d4..e3c620010 100644
--- a/core/src/raw/adapters/typed_kv/backend.rs
+++ b/core/src/raw/adapters/typed_kv/backend.rs
@@ -167,7 +167,7 @@ impl<S: Adapter> Accessor for Backend<S> {
     async fn stat(&self, path: &str, _: OpStat) -> Result<RpStat> {
         let p = build_abs_path(&self.root, path);
 
-        if p.is_empty() || p.ends_with('/') {
+        if p == build_abs_path(&self.root, "") {
             Ok(RpStat::new(Metadata::new(EntryMode::DIR)))
         } else {
             let bs = self.kv.get(&p).await?;
@@ -181,7 +181,7 @@ impl<S: Adapter> Accessor for Backend<S> {
     fn blocking_stat(&self, path: &str, _: OpStat) -> Result<RpStat> {
         let p = build_abs_path(&self.root, path);
 
-        if p.is_empty() || p.ends_with('/') {
+        if p == build_abs_path(&self.root, "") {
             Ok(RpStat::new(Metadata::new(EntryMode::DIR)))
         } else {
             let bs = self.kv.blocking_get(&p)?;

Reply via email to