Github user ilooner commented on a diff in the pull request:
https://github.com/apache/drill/pull/1057#discussion_r157894423
--- 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 --
The copiers are only used in the SVRemover and TopN operator. I have
replaced the code generated copiers in both now to use the GenericCopiers.
---