nastra commented on code in PR #12706:
URL: https://github.com/apache/iceberg/pull/12706#discussion_r2026343357


##########
spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkWrite.java:
##########
@@ -351,6 +353,7 @@ private OverwriteByFilter(Expression overwriteExpr) {
     public void commit(WriterCommitMessage[] messages) {
       OverwriteFiles overwriteFiles = table.newOverwrite();
       overwriteFiles.overwriteByRowFilter(overwriteExpr);
+      overwriteFiles.caseSensitive(caseSensitive);

Review Comment:
   I don't think this is the only place that needs to be fixed. I did a quick 
check and I think there are a few other places that also need to be fixed. We 
should also add some additional tests for the other places that fail without 
the fix and pass with it.
   
   ```
   --- 
a/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeltaWrite.java
   +++ 
b/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeltaWrite.java
   @@ -111,6 +111,7 @@ class SparkPositionDeltaWrite implements DeltaWrite, 
RequiresDistributionAndOrde
      private final SparkWriteRequirements writeRequirements;
      private final Context context;
      private final Map<String, String> writeProperties;
   +  private final boolean caseSensitive;
   
      private boolean cleanupOnAbort = false;
   
   @@ -136,6 +137,7 @@ class SparkPositionDeltaWrite implements DeltaWrite, 
RequiresDistributionAndOrde
        this.writeRequirements = writeConf.positionDeltaRequirements(command);
        this.context = new Context(dataSchema, writeConf, info, 
writeRequirements);
        this.writeProperties = writeConf.writeProperties();
   +    this.caseSensitive = writeConf.caseSensitive();
      }
   
      @Override
   @@ -205,6 +207,7 @@ class SparkPositionDeltaWrite implements DeltaWrite, 
RequiresDistributionAndOrde
        @Override
        public void commit(WriterCommitMessage[] messages) {
          RowDelta rowDelta = table.newRowDelta();
   +      rowDelta.caseSensitive(caseSensitive);
   
          CharSequenceSet referencedDataFiles = CharSequenceSet.empty();
   
   diff --git 
a/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkTable.java
 
b/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkTable.java
   index bbc743413..de08611fb 100644
   --- 
a/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkTable.java
   +++ 
b/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkTable.java
   @@ -374,6 +374,7 @@ public class SparkTable
        DeleteFiles deleteFiles =
            icebergTable
                .newDelete()
   +            // .caseSensitive(...)
                .set("spark.app.id", 
sparkSession().sparkContext().applicationId())
                .deleteFromRowFilter(deleteExpr);
   
   diff --git 
a/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkWrite.java
 
b/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkWrite.java
   index b15fe2576..f74cf74ca 100644
   --- 
a/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkWrite.java
   +++ 
b/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkWrite.java
   @@ -351,6 +351,7 @@ abstract class SparkWrite implements Write, 
RequiresDistributionAndOrdering {
        public void commit(WriterCommitMessage[] messages) {
          OverwriteFiles overwriteFiles = table.newOverwrite();
          overwriteFiles.overwriteByRowFilter(overwriteExpr);
   +      overwriteFiles.caseSensitive(writeConf.caseSensitive());
   
          int numFiles = 0;
          for (DataFile file : files(messages)) {
   @@ -412,6 +413,7 @@ abstract class SparkWrite implements Write, 
RequiresDistributionAndOrdering {
        @Override
        public void commit(WriterCommitMessage[] messages) {
          OverwriteFiles overwriteFiles = table.newOverwrite();
   +      overwriteFiles.caseSensitive(writeConf.caseSensitive());
   
          List<DataFile> overwrittenFiles = overwrittenFiles();
          int numOverwrittenFiles = overwrittenFiles.size();
   @@ -589,6 +591,8 @@ abstract class SparkWrite implements Write, 
RequiresDistributionAndOrdering {
        public void doCommit(long epochId, WriterCommitMessage[] messages) {
          OverwriteFiles overwriteFiles = table.newOverwrite();
          overwriteFiles.overwriteByRowFilter(Expressions.alwaysTrue());
   +      overwriteFiles.caseSensitive(writeConf.caseSensitive());
   +
          int numFiles = 0;
          for (DataFile file : files(messages)) {
            overwriteFiles.addFile(file);
   ```
   It's possible that there are a few more places in Spark as I haven't done a 
thorough analysis, so it would be good to fix those places as well
   



-- 
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