asfimport opened a new issue, #301:
URL: https://github.com/apache/arrow-java/issues/301

   The current implementation of Java VectorSchemaRoot cannot add a vector at 
the end of the current list (which is the generally understood meaning of 
"add").
   
   The Precondition check in the method's second line prevents providing an 
appropriate index for adding at the end:
   ```java
   
   public VectorSchemaRoot addVector(int index, FieldVector vector) {
     Preconditions.checkNotNull(vector);
     Preconditions.checkArgument(index >= 0 && index < fieldVectors.size());
     List<FieldVector> newVectors = new ArrayList<>();
     for (int i = 0; i < fieldVectors.size(); i++) {
       if (i == index) {
         newVectors.add(vector);
       }
       newVectors.add(fieldVectors.get(i));
     }
     return new VectorSchemaRoot(newVectors);
   }
    
   ```
   One possible implementation resolving the issue is shown below.
   ```java
   
   public VectorSchemaRoot addVector(int index, FieldVector vector) {
     Preconditions.checkNotNull(vector);
     Preconditions.checkArgument(index >= 0 && index <= fieldVectors.size());
     List<FieldVector> newVectors = new ArrayList<>();
     if (index == fieldVectors.size()) {
       newVectors.addAll(fieldVectors);
       newVectors.add(vector); 
     } else {
       for (int i = 0; i < fieldVectors.size(); i++) {
         if (i == index) {
           newVectors.add(vector);
         }
         newVectors.add(fieldVectors.get(i));
       }
     }
     return new VectorSchemaRoot(newVectors);
   }
   ```
    
   
    
   
    
   
    
   
    
   
   **Reporter**: [Larry 
White](https://issues.apache.org/jira/browse/ARROW-17530) / @lwhite1
   
   <sub>**Note**: *This issue was originally created as 
[ARROW-17530](https://issues.apache.org/jira/browse/ARROW-17530). Please see 
the [migration documentation](https://github.com/apache/arrow/issues/14542) for 
further details.*</sub>


-- 
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...@arrow.apache.org.apache.org

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

Reply via email to