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

ahmedabu98 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 06aa37bdffd use proper table naming in iceberg sql (#39035)
06aa37bdffd is described below

commit 06aa37bdffd16177e44c93b922cd16b6543fa9dd
Author: Ahmed Abualsaud <[email protected]>
AuthorDate: Fri Jun 19 23:29:26 2026 -0400

    use proper table naming in iceberg sql (#39035)
---
 .../sql/meta/provider/iceberg/IcebergMetastore.java         |  8 ++++++--
 .../sql/meta/provider/iceberg/IcebergMetastoreTest.java     | 13 +++++++++++++
 .../apache/beam/sdk/io/iceberg/IcebergCatalogConfig.java    |  2 +-
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git 
a/sdks/java/extensions/sql/iceberg/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergMetastore.java
 
b/sdks/java/extensions/sql/iceberg/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergMetastore.java
index 5604b7c0837..e6518f7192a 100644
--- 
a/sdks/java/extensions/sql/iceberg/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergMetastore.java
+++ 
b/sdks/java/extensions/sql/iceberg/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergMetastore.java
@@ -94,7 +94,7 @@ public class IcebergMetastore extends InMemoryMetaStore {
   @Override
   public Map<String, Table> getTables() {
     for (String id : catalogConfig.listTables(database)) {
-      String name = TableName.create(id).getTableName();
+      String name = tableName(id);
       @Nullable Table cachedTable = cachedTables.get(name);
       if (cachedTable == null) {
         Table table = checkStateNotNull(loadTable(id));
@@ -116,6 +116,10 @@ public class IcebergMetastore extends InMemoryMetaStore {
     return table;
   }
 
+  private String tableName(String tableId) {
+    return TableName.create(tableId).getTableName();
+  }
+
   private String getIdentifier(String name) {
     return database + "." + name;
   }
@@ -133,7 +137,7 @@ public class IcebergMetastore extends InMemoryMetaStore {
     }
     return Table.builder()
         .type(getTableType())
-        .name(identifier)
+        .name(tableName(identifier))
         .schema(tableInfo.getSchema())
         .properties(TableUtils.parseProperties(tableInfo.getProperties()))
         .build();
diff --git 
a/sdks/java/extensions/sql/iceberg/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergMetastoreTest.java
 
b/sdks/java/extensions/sql/iceberg/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergMetastoreTest.java
index a7baf1191d1..5e76b536134 100644
--- 
a/sdks/java/extensions/sql/iceberg/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergMetastoreTest.java
+++ 
b/sdks/java/extensions/sql/iceberg/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergMetastoreTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Map;
 import java.util.UUID;
 import org.apache.beam.sdk.extensions.sql.meta.BeamSqlTable;
 import org.apache.beam.sdk.extensions.sql.meta.Table;
@@ -89,6 +90,18 @@ public class IcebergMetastoreTest {
     assertEquals(ImmutableSet.of("my_table_1", "my_table_2"), 
metastore().getTables().keySet());
   }
 
+  @Test
+  public void testGetTablesLoadsUncachedTablesWithSimpleNames() {
+    String tableName = "uncached_table";
+    catalog.catalogConfig.createTable(
+        catalog.currentDatabase() + "." + tableName, Schema.of(), null, null);
+
+    Map<String, Table> tables = metastore().getTables();
+
+    assertEquals(ImmutableSet.of(tableName), tables.keySet());
+    assertEquals(tableName, tables.get(tableName).getName());
+  }
+
   @Test
   public void testSupportsPartitioning() {
     Table table = 
Table.builder().name("my_table_1").schema(Schema.of()).type("iceberg").build();
diff --git 
a/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/IcebergCatalogConfig.java
 
b/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/IcebergCatalogConfig.java
index 6fb0a3480a0..454fe40269d 100644
--- 
a/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/IcebergCatalogConfig.java
+++ 
b/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/IcebergCatalogConfig.java
@@ -276,7 +276,7 @@ public abstract class IcebergCatalogConfig implements 
Serializable {
 
   public Set<String> listTables(String namespace) {
     return catalog().listTables(Namespace.of(namespace)).stream()
-        .map(TableIdentifier::name)
+        .map(TableIdentifier::toString)
         .collect(Collectors.toSet());
   }
 

Reply via email to