ayushtkn commented on code in PR #16158:
URL: https://github.com/apache/iceberg/pull/16158#discussion_r3240141803


##########
spark/v4.1/spark/src/test/java/org/apache/iceberg/spark/sql/TestTableEncryption.java:
##########
@@ -212,16 +212,22 @@ public void testInsertAndDelete() {
         expected,
         sql("SELECT * FROM %s ORDER BY id", tableName));
 
-    sql("DELETE FROM %s WHERE id < 4", tableName);
+    sql("DELETE FROM %s WHERE id < 5", tableName);
 
-    expected = ImmutableList.of(row(4L, "d", 4.0F), row(5L, "e", 5.0F), 
row(6L, "f", Float.NaN));
+    expected = ImmutableList.of(row(5L, "e", 5.0F), row(6L, "f", Float.NaN));
 
     assertEquals(
         "Should return all expected rows",
         expected,
         sql("SELECT * FROM %s ORDER BY id", tableName));
   }
 
+  @TestTemplate
+  public void testInsertAndDeleteMOR() {
+    sql("ALTER TABLE %s SET TBLPROPERTIES 
('write.delete.mode'='merge-on-read')", tableName);
+    testInsertAndDelete();

Review Comment:
   Can you check, I did this:
   ```
   ayushsaxena@Q3NW54Y0C5 iceberg % git reset HEAD~1
   Unstaged changes after reset:
   M       core/src/main/java/org/apache/iceberg/DVUtil.java
   M       core/src/main/java/org/apache/iceberg/deletes/BaseDVFileWriter.java
   M       
spark/v4.0/spark/src/test/java/org/apache/iceberg/spark/sql/TestTableEncryption.java
   M       
spark/v4.1/spark/src/test/java/org/apache/iceberg/spark/sql/TestTableEncryption.java
   ayushsaxena@Q3NW54Y0C5 iceberg % git checkout  
core/src/main/java/org/apache/iceberg/DVUtil.java 
core/src/main/java/org/apache/iceberg/deletes/BaseDVFileWriter.java
   Updated 2 paths from the index
   ayushsaxena@Q3NW54Y0C5 iceberg % ./gradlew clean 
:iceberg-spark:iceberg-spark-4.1_2.13:test --tests 
"org.apache.iceberg.spark.sql.TestTableEncryption.testInsertAndDeleteMOR"
   Configuration on demand is an incubating feature.
   
   > Task :iceberg-api:testJar
   file '/Users/ayushsaxena/code/iceberg/build/iceberg-build.properties' will 
be copied to 'iceberg-build.properties', overwriting file 
'/Users/ayushsaxena/code/iceberg/api/build/resources/test/iceberg-build.properties',
 which has already been copied there.
   
   > Task :iceberg-spark:iceberg-spark-4.1_2.13:compileTestJava
   Note: Some input files use or override a deprecated API.
   Note: Recompile with -Xlint:deprecation for details.
   Note: Some input files use unchecked or unsafe operations.
   Note: Recompile with -Xlint:unchecked for details.
   
   > Task :iceberg-spark:iceberg-spark-4.1_2.13:test
   
   TestTableEncryption > testInsertAndDeleteMOR() > catalogName = testhive, 
implementation = org.apache.iceberg.spark.SparkCatalog, config = {type=hive, 
default-namespace=default, 
encryption.kms-impl=org.apache.iceberg.encryption.UnitestKMS} FAILED
       org.apache.spark.SparkException: Job aborted due to stage failure: Task 
0 in stage 9.0 failed 1 times, most recent failure: Lost task 0.0 in stage 9.0 
(TID 9) (192.168.29.167 executor driver): java.lang.IllegalStateException: Null 
key metadata buffer
           at 
org.apache.iceberg.encryption.StandardKeyMetadata.castOrParse(StandardKeyMetadata.java:111)
           at 
org.apache.iceberg.encryption.StandardEncryptionManager$StandardDecryptedInputFile.keyMetadata(StandardEncryptionManager.java:302)
           at 
org.apache.iceberg.encryption.StandardEncryptionManager$StandardDecryptedInputFile.decrypted(StandardEncryptionManager.java:313)
           at 
org.apache.iceberg.encryption.StandardEncryptionManager$StandardDecryptedInputFile.location(StandardEncryptionManager.java:333)
           at 
org.apache.iceberg.encryption.EncryptingFileIO.bulkDecrypt(EncryptingFileIO.java:71)
           at 
org.apache.iceberg.spark.source.BaseReader.inputFiles(BaseReader.java:186)
           at 
org.apache.iceberg.spark.source.BaseReader.getInputFile(BaseReader.java:180)
           at 
org.apache.iceberg.spark.source.BatchDataReader.open(BatchDataReader.java:108)
           at 
org.apache.iceberg.spark.source.BatchDataReader.open(BatchDataReader.java:43)
           at 
org.apache.iceberg.spark.source.BaseReader.next(BaseReader.java:144)
           at 
org.apache.spark.sql.execution.datasources.v2.PartitionIterator.hasNext(DataSourceRDD.scala:148)
           at 
org.apache.spark.sql.execution.datasources.v2.MetricsIterator.hasNext(DataSourceRDD.scala:186)
           at 
org.apache.spark.sql.execution.datasources.v2.DataSourceRDD$$anon$1.$anonfun$hasNext$1(DataSourceRDD.scala:72)
           at 
org.apache.spark.sql.execution.datasources.v2.DataSourceRDD$$anon$1.$anonfun$hasNext$1$adapted(DataSourceRDD.scala:72)
           at scala.Option.exists(Option.scala:406)
   ```



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to