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)