You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by bl...@apache.org on 2021/01/11 18:23:10 UTC

[iceberg] branch master updated: Core: Add HadoopTables.exists (#2056)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 242c91c  Core: Add HadoopTables.exists (#2056)
242c91c is described below

commit 242c91cf8e0639eccc48c629a8c9c6af51f62d79
Author: Nan Zhu <Co...@users.noreply.github.com>
AuthorDate: Mon Jan 11 10:22:53 2021 -0800

    Core: Add HadoopTables.exists (#2056)
---
 api/src/main/java/org/apache/iceberg/Tables.java               |  2 ++
 core/src/main/java/org/apache/iceberg/hadoop/HadoopTables.java |  5 +++++
 .../test/java/org/apache/iceberg/hadoop/TestHadoopTables.java  | 10 ++++++++++
 mr/src/test/java/org/apache/iceberg/mr/hive/TestTables.java    |  5 +++++
 4 files changed, 22 insertions(+)

diff --git a/api/src/main/java/org/apache/iceberg/Tables.java b/api/src/main/java/org/apache/iceberg/Tables.java
index e88ece0..1c1daaf 100644
--- a/api/src/main/java/org/apache/iceberg/Tables.java
+++ b/api/src/main/java/org/apache/iceberg/Tables.java
@@ -50,4 +50,6 @@ public interface Tables {
   }
 
   Table load(String tableIdentifier);
+
+  boolean exists(String tableIdentifier);
 }
diff --git a/core/src/main/java/org/apache/iceberg/hadoop/HadoopTables.java b/core/src/main/java/org/apache/iceberg/hadoop/HadoopTables.java
index 9a856b2..dc1a2d2 100644
--- a/core/src/main/java/org/apache/iceberg/hadoop/HadoopTables.java
+++ b/core/src/main/java/org/apache/iceberg/hadoop/HadoopTables.java
@@ -94,6 +94,11 @@ public class HadoopTables implements Tables, Configurable {
     return result;
   }
 
+  @Override
+  public boolean exists(String location) {
+    return newTableOps(location).current() != null;
+  }
+
   /**
    * Try to resolve a metadata table, which we encode as URI fragments
    * e.g. hdfs:///warehouse/my_table#snapshots
diff --git a/core/src/test/java/org/apache/iceberg/hadoop/TestHadoopTables.java b/core/src/test/java/org/apache/iceberg/hadoop/TestHadoopTables.java
index c3d0918..256aec0 100644
--- a/core/src/test/java/org/apache/iceberg/hadoop/TestHadoopTables.java
+++ b/core/src/test/java/org/apache/iceberg/hadoop/TestHadoopTables.java
@@ -66,6 +66,16 @@ public class TestHadoopTables {
   }
 
   @Test
+  public void testTableExists() {
+    Assert.assertFalse(TABLES.exists(tableDir.toURI().toString()));
+    PartitionSpec spec = PartitionSpec.builderFor(SCHEMA)
+            .bucket("data", 16)
+            .build();
+    TABLES.create(SCHEMA, spec, tableDir.toURI().toString());
+    Assert.assertTrue(TABLES.exists(tableDir.toURI().toString()));
+  }
+
+  @Test
   public void testDropTable() {
     TABLES.create(SCHEMA, tableDir.toURI().toString());
     TABLES.dropTable(tableDir.toURI().toString());
diff --git a/mr/src/test/java/org/apache/iceberg/mr/hive/TestTables.java b/mr/src/test/java/org/apache/iceberg/mr/hive/TestTables.java
index 94efe42..a8f4ee8 100644
--- a/mr/src/test/java/org/apache/iceberg/mr/hive/TestTables.java
+++ b/mr/src/test/java/org/apache/iceberg/mr/hive/TestTables.java
@@ -222,6 +222,11 @@ abstract class TestTables {
     public Table load(String tableIdentifier) {
       return catalog.loadTable(TableIdentifier.parse(tableIdentifier));
     }
+
+    @Override
+    public boolean exists(String tableIdentifier) {
+      return catalog.tableExists(TableIdentifier.parse(tableIdentifier));
+    }
   }
 
   static class CustomCatalogTestTables extends TestTables {