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

diqiu50 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new e30102470a [#10397] fix(iceberg): Fix wrong namespaces when listing 
tables or views (#10398)
e30102470a is described below

commit e30102470a5b9faedbd135949cb6a3fad5b91504
Author: roryqi <[email protected]>
AuthorDate: Thu Mar 12 18:33:26 2026 +0800

    [#10397] fix(iceberg): Fix wrong namespaces when listing tables or views 
(#10398)
    
    ### What changes were proposed in this pull request?
    
     Fix wrong namespaces when listing tables or views
    
    ### Why are the changes needed?
    
    Fix: #10397
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Added test cases.
---
 .../gravitino/iceberg/service/rest/IcebergTableOperations.java    | 2 +-
 .../gravitino/iceberg/service/rest/IcebergViewOperations.java     | 2 +-
 .../iceberg/integration/test/IcebergAuthorizationIT.java          | 8 +++++++-
 .../iceberg/integration/test/IcebergViewAuthorizationIT.java      | 6 ++++++
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOperations.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOperations.java
index 1bac5d64b6..e15de6d51b 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOperations.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOperations.java
@@ -552,7 +552,7 @@ public class IcebergTableOperations {
     List<TableIdentifier> filteredIdentifiers = new ArrayList<>();
     for (NameIdentifier ident : idents) {
       filteredIdentifiers.add(
-          TableIdentifier.of(Namespace.of(ident.namespace().level(0)), 
ident.name()));
+          TableIdentifier.of(Namespace.of(ident.namespace().level(2)), 
ident.name()));
     }
     return ListTablesResponse.builder()
         .addAll(filteredIdentifiers)
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergViewOperations.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergViewOperations.java
index 86e3d66b5a..c94ef3a340 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergViewOperations.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergViewOperations.java
@@ -353,7 +353,7 @@ public class IcebergViewOperations {
     List<TableIdentifier> filteredIdentifiers = new ArrayList<>();
     for (NameIdentifier ident : idents) {
       filteredIdentifiers.add(
-          TableIdentifier.of(Namespace.of(ident.namespace().level(0)), 
ident.name()));
+          TableIdentifier.of(Namespace.of(ident.namespace().level(2)), 
ident.name()));
     }
     return ListTablesResponse.builder()
         .addAll(filteredIdentifiers)
diff --git 
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergAuthorizationIT.java
 
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergAuthorizationIT.java
index eb20d4672e..63fcc10a59 100644
--- 
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergAuthorizationIT.java
+++ 
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergAuthorizationIT.java
@@ -271,7 +271,13 @@ public class IcebergAuthorizationIT extends BaseIT {
   }
 
   protected Set<String> listTableNames(String database) {
-    return convertToStringSet(sql("SHOW TABLES in %s", database), 1);
+    List<Object[]> objects = sql("SHOW TABLES in %s", database);
+    for (Object[] row : objects) {
+      if (row.length > 1) {
+        Assertions.assertEquals(database, String.valueOf(row[0]));
+      }
+    }
+    return convertToStringSet(objects, 1);
   }
 
   protected List<Object[]> sql2(String query) {
diff --git 
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergViewAuthorizationIT.java
 
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergViewAuthorizationIT.java
index 7dfd3c6d83..2ffd92c8e2 100644
--- 
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergViewAuthorizationIT.java
+++ 
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/integration/test/IcebergViewAuthorizationIT.java
@@ -488,6 +488,12 @@ public class IcebergViewAuthorizationIT extends 
IcebergAuthorizationIT {
 
   private Set<String> listViewNames(String database) {
     List<Object[]> rows = sql("SHOW VIEWS in %s", database);
+    rows.forEach(
+        row -> {
+          if (row.length > 1) {
+            Assertions.assertEquals(database, row[0]);
+          }
+        });
     return rows.stream()
         .map(row -> row.length > 1 ? (String) row[1] : (String) row[0])
         .collect(Collectors.toSet());

Reply via email to