sririshindra commented on code in PR #12779:
URL: https://github.com/apache/iceberg/pull/12779#discussion_r2049123660


##########
spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/actions/TestSnapshotTableAction.java:
##########
@@ -65,4 +69,40 @@ public void testSnapshotWithParallelTasks() throws 
IOException {
         .execute();
     assertThat(snapshotThreadsIndex.get()).isEqualTo(2);
   }
+
+  @TestTemplate
+  public void testTableLocationOverlapThrowsException() throws IOException {
+    // Ensure the test runs only for non-Hadoop-based catalogs,
+    // because path-based tables cannot have a custom location set.
+    assumeThat(catalogName)
+        .as("Cannot set a custom location for a path-based table.")
+        .isNotEqualTo("testhadoop");
+
+    String location = Files.createTempDirectory(temp, 
"junit").toFile().toString();
+
+    sql(
+        "CREATE TABLE %s (id bigint NOT NULL, data string) USING parquet 
LOCATION '%s'",
+        SOURCE_NAME, location);
+    sql("INSERT INTO TABLE %s VALUES (1, 'a')", SOURCE_NAME);
+    sql("INSERT INTO TABLE %s VALUES (2, 'b')", SOURCE_NAME);
+
+    // Define properties for the destination table, setting its location to 
the same path as the
+    // source table
+    Map<String, String> tableProperties = Maps.newHashMap();
+    tableProperties.put("location", "file:" + location);
+
+    // Test that an exception is thrown
+    // when the destination table location overlaps with the source table 
location
+    // Assert that the exception message matches the expected error message

Review Comment:
   I concur with this comment as well. Given that in other places in the code 
base where the caching of IllegalArgumentException is being tested doesn't have 
any explanation in the comments earthier I don't think the comment is needed 
here as well. It wouldn't be a divergence from rest of the codebase. 



##########
spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/actions/TestSnapshotTableAction.java:
##########
@@ -65,4 +69,40 @@ public void testSnapshotWithParallelTasks() throws 
IOException {
         .execute();
     assertThat(snapshotThreadsIndex.get()).isEqualTo(2);
   }
+
+  @TestTemplate
+  public void testTableLocationOverlapThrowsException() throws IOException {
+    // Ensure the test runs only for non-Hadoop-based catalogs,
+    // because path-based tables cannot have a custom location set.
+    assumeThat(catalogName)
+        .as("Cannot set a custom location for a path-based table.")
+        .isNotEqualTo("testhadoop");
+
+    String location = Files.createTempDirectory(temp, 
"junit").toFile().toString();
+
+    sql(
+        "CREATE TABLE %s (id bigint NOT NULL, data string) USING parquet 
LOCATION '%s'",
+        SOURCE_NAME, location);
+    sql("INSERT INTO TABLE %s VALUES (1, 'a')", SOURCE_NAME);
+    sql("INSERT INTO TABLE %s VALUES (2, 'b')", SOURCE_NAME);
+
+    // Define properties for the destination table, setting its location to 
the same path as the
+    // source table
+    Map<String, String> tableProperties = Maps.newHashMap();
+    tableProperties.put("location", "file:" + location);

Review Comment:
   I concur. This is much cleaner.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to