Paul Rogers created DRILL-5954:
----------------------------------

             Summary: ListVector derives from BaseRepeatedValueVector, shadows 
offsets
                 Key: DRILL-5954
                 URL: https://issues.apache.org/jira/browse/DRILL-5954
             Project: Apache Drill
          Issue Type: Bug
    Affects Versions: 1.8.0
            Reporter: Paul Rogers
            Assignee: Paul Rogers
            Priority: Minor
             Fix For: 1.13.0


The Drill vector class {{ListVector}} derives from {{BaseRepeatedValueVector}}:

{code}
public class ListVector extends BaseRepeatedValueVector {

  private UInt4Vector offsets;
...
{code}

Note that the {{offsets}} member shadows a member of the same type in the super 
class:

{code}
public abstract class BaseRepeatedValueVector ... {

  protected final UInt4Vector offsets;
...
{code}

In Java, shadowing an existing field is considered bad practice as it is never 
clear which field any particular bit of code references.

In this case, it appears to be that the {{ListVector}} version is simply a 
reference to the base class version. Perhaps because someone didn't understand 
{{protected}} mode in Java?

{code}
  public ListVector(MaterializedField field, BufferAllocator allocator, 
CallBack callBack) {
    ...
    offsets = getOffsetVector();
...
{code}

A quick experiment shows that the {{ListVector}} version can simply be removed.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to