slessard commented on code in PR #10953:
URL: https://github.com/apache/iceberg/pull/10953#discussion_r1773673837


##########
arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java:
##########
@@ -140,12 +141,18 @@ public static class ConstantVectorHolder<T> extends 
VectorHolder {
     private final int numRows;
 
     public ConstantVectorHolder(int numRows) {
+      super(new NullVector("_dummy_", numRows), null, new 
NullabilityHolder(numRows));
+      nullabilityHolder().setNulls(0, numRows);
       this.numRows = numRows;
       this.constantValue = null;
     }
 
     public ConstantVectorHolder(Types.NestedField icebergField, int numRows, T 
constantValue) {
-      super(icebergField);
+      super(
+          new NullVector(icebergField.name(), numRows),

Review Comment:
   @nastra, @amogh-jahagirdar  This change causes the Spark tests the fail. 
I've analyzed the failure and concluded that this change, as is, assumes that 
ConstantVectorHolder will only ever hold a null value. The below patch fixes 
the issue, but it feels a bit tacky to me. What do you think?
   
   ```
   Subject: [PATCH] Changes
   ---
   Index: 
arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java
   IDEA additional info:
   Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
   <+>UTF-8
   ===================================================================
   diff --git 
a/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java 
b/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java
   --- 
a/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java     
 (revision 1a3896bba82e1e92142b237e1cd9332d67171b19)
   +++ 
b/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorHolder.java     
 (date 1727193972380)
   @@ -149,10 +149,12 @@
    
        public ConstantVectorHolder(Types.NestedField icebergField, int 
numRows, T constantValue) {
          super(
   -          new NullVector(icebergField.name(), numRows),
   +          (null == constantValue) ? new NullVector(icebergField.name(), 
numRows) : null,
              icebergField,
              new NullabilityHolder(numRows));
   -      nullabilityHolder().setNulls(0, numRows);
   +      if (null == constantValue) {
   +        nullabilityHolder().setNulls(0, numRows);
   +      }
          this.numRows = numRows;
          this.constantValue = constantValue;
        }
   ```



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