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

    https://github.com/apache/drill/pull/1057#discussion_r157646058
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/CopierTemplate2.java
 ---
    @@ -53,17 +51,32 @@ public int copyRecords(int index, int recordCount) 
throws SchemaChangeException
           }
         }
     
    -    int outgoingPosition = 0;
    +    return insertRecords(0, index, recordCount);
    +  }
    +
    +  @Override
    +  public int appendRecord(int index) throws SchemaChangeException {
    +    return appendRecords(index, 1);
    +  }
    +
    +  @Override
    +  public int appendRecords(int index, int recordCount) throws 
SchemaChangeException {
    +    return insertRecords(outgoing.getRecordCount(), index, recordCount);
    +  }
    +
    +  private int insertRecords(int outgoingPosition, int index, int 
recordCount) throws SchemaChangeException {
    +    final int endIndex = index + recordCount;
     
    -    for(int svIndex = index; svIndex < index + recordCount; svIndex++, 
outgoingPosition++){
    +    for(int svIndex = index; svIndex < endIndex; svIndex++, 
outgoingPosition++){
           doEval(sv2.getIndex(svIndex), outgoingPosition);
         }
    +
    +    outgoing.setRecordCount(outgoingPosition);
         return outgoingPosition;
       }
     
    -  public abstract void doSetup(@Named("context") FragmentContext context,
    -                               @Named("incoming") RecordBatch incoming,
    -                               @Named("outgoing") RecordBatch outgoing)
    +  public abstract void doSetup(@Named("incoming") RecordBatch incoming,
    +                               @Named("outgoing") VectorContainer outgoing)
    --- End diff --
    
    As the "generated code" methods are replaced with "in line" methods, we 
should remove these abstract signatures (both *doSetup* and *doEval*) to avoid 
generating code, and to distinguish these methods. Maybe we should _rename_ 
them as well to make the distinction clear.  Then probably also eliminate the 
"code generation" code in **getGenerated2Copier()** and 
**getGenerated4Copier()**.  


---

Reply via email to