Github user Ben-Zvi commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1057#discussion_r157612792
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/record/VectorContainer.java 
---
    @@ -353,6 +353,23 @@ public int getRecordCount() {
     
       public boolean hasRecordCount() { return recordCount != -1; }
     
    +  /**
    +   * This works with non-hyper {@link VectorContainer}s which have no 
selection vectors.
    +   * Appends a row taken from a source {@link VectorContainer} to this 
{@link VectorContainer}.
    +   * @param srcContainer The {@link VectorContainer} to copy a row from.
    +   * @param srcIndex The index of the row to copy from the source {@link 
VectorContainer}.
    +   */
    +  public void appendRow(VectorContainer srcContainer, int srcIndex) {
    +    for (int vectorIndex = 0; vectorIndex < wrappers.size(); 
vectorIndex++) {
    +      ValueVector destVector = wrappers.get(vectorIndex).getValueVector();
    +      ValueVector srcVector = 
srcContainer.wrappers.get(vectorIndex).getValueVector();
    +
    +      destVector.copyEntry(recordCount, srcVector, srcIndex);
    +    }
    +
    +    recordCount++;
    --- End diff --
    
    (1) Need to change the initial value of *recordCount* from -1 to 0 ;
    (2) That "-1" is used to note "uninitialized". So need to add a boolean 
flag for that purpose.
    (3) Please change the *appendRow()* signature to return *recordCount*. 
(E.g., so the caller would know when the target container is full).
     


---

Reply via email to