Github user ilooner commented on a diff in the pull request:
https://github.com/apache/drill/pull/1057#discussion_r163028998
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/GenericSV4Copier.java
---
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.drill.exec.physical.impl.svremover;
+
+import org.apache.drill.exec.exception.SchemaChangeException;
+import org.apache.drill.exec.ops.FragmentContext;
+import org.apache.drill.exec.record.RecordBatch;
+import org.apache.drill.exec.record.VectorContainer;
+import org.apache.drill.exec.record.VectorWrapper;
+import org.apache.drill.exec.vector.SchemaChangeCallBack;
+import org.apache.drill.exec.vector.ValueVector;
+
+public class GenericSV4Copier extends AbstractSV4Copier {
+
+ @Override
+ public void setup(RecordBatch incoming, VectorContainer outgoing) throws
SchemaChangeException {
+ super.setup(incoming, outgoing);
--- End diff --
The code is similar but not identical. For **GenericSV4Copier** **vvIn** is
a 2D array of type **ValueVector[][]**. For **GenericSV2Copier** **vvIn** is a
1D array of type **ValueVector[]**. Since the types are different I can't move
the code into the **AbstractCopier**. But I will move the setup code in
**GenericSV2Copier** to **AbstractSV2Copier** since that code will likely be
the same for different implementations. I'll also do the same thing with the
**GenericSV4Copier** and **AbstractSV4Copier** classes.
---