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

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


The following commit(s) were added to refs/heads/master by this push:
     new d9b29e54031 [HUDI-6080] Use hoodie.properties to determine if the 
table exists (#8462)
d9b29e54031 is described below

commit d9b29e540314f842d8d3aa86f8429cca8a8cf786
Author: Manu <[email protected]>
AuthorDate: Mon Apr 17 11:35:09 2023 +0800

    [HUDI-6080] Use hoodie.properties to determine if the table exists (#8462)
---
 .../java/org/apache/hudi/util/StreamerUtil.java     |  3 ++-
 .../org/apache/hudi/utils/TestStreamerUtil.java     | 21 +++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git 
a/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/util/StreamerUtil.java
 
b/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/util/StreamerUtil.java
index 1b032bf73ee..61643e68214 100644
--- 
a/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/util/StreamerUtil.java
+++ 
b/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/util/StreamerUtil.java
@@ -236,7 +236,8 @@ public class StreamerUtil {
     // Hadoop FileSystem
     FileSystem fs = FSUtils.getFs(basePath, hadoopConf);
     try {
-      return fs.exists(new Path(basePath, 
HoodieTableMetaClient.METAFOLDER_NAME));
+      return fs.exists(new Path(basePath, 
HoodieTableMetaClient.METAFOLDER_NAME))
+          && fs.exists(new Path(new Path(basePath, 
HoodieTableMetaClient.METAFOLDER_NAME), 
HoodieTableConfig.HOODIE_PROPERTIES_FILE));
     } catch (IOException e) {
       throw new HoodieException("Error while checking whether table exists 
under path:" + basePath, e);
     }
diff --git 
a/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/utils/TestStreamerUtil.java
 
b/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/utils/TestStreamerUtil.java
index a641811bb73..d3bdc479d31 100644
--- 
a/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/utils/TestStreamerUtil.java
+++ 
b/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/utils/TestStreamerUtil.java
@@ -18,13 +18,18 @@
 
 package org.apache.hudi.utils;
 
+import org.apache.hudi.common.fs.FSUtils;
+import org.apache.hudi.common.table.HoodieTableConfig;
 import org.apache.hudi.common.table.HoodieTableMetaClient;
 import org.apache.hudi.common.util.FileIOUtils;
 import org.apache.hudi.configuration.FlinkOptions;
+import org.apache.hudi.configuration.HadoopConfigurations;
 import org.apache.hudi.keygen.SimpleAvroKeyGenerator;
 import org.apache.hudi.util.StreamerUtil;
 
 import org.apache.flink.configuration.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.io.TempDir;
 
@@ -101,5 +106,21 @@ public class TestStreamerUtil {
     long diff = StreamerUtil.instantTimeDiffSeconds(higher, lower);
     assertThat(diff, is(75L));
   }
+
+  @Test
+  void testTableExist() throws IOException {
+    Configuration conf = 
TestConfigurations.getDefaultConf(tempFile.getAbsolutePath());
+    String basePath = tempFile.getAbsolutePath();
+
+    assertFalse(StreamerUtil.tableExists(basePath, 
HadoopConfigurations.getHadoopConf(conf)));
+
+    try (FileSystem fs = FSUtils.getFs(basePath, 
HadoopConfigurations.getHadoopConf(conf))) {
+      fs.mkdirs(new Path(basePath, HoodieTableMetaClient.METAFOLDER_NAME));
+      assertFalse(StreamerUtil.tableExists(basePath, 
HadoopConfigurations.getHadoopConf(conf)));
+
+      fs.create(new Path(new Path(basePath, 
HoodieTableMetaClient.METAFOLDER_NAME), 
HoodieTableConfig.HOODIE_PROPERTIES_FILE));
+      assertTrue(StreamerUtil.tableExists(basePath, 
HadoopConfigurations.getHadoopConf(conf)));
+    }
+  }
 }
 

Reply via email to