You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Paul Rogers (JIRA)" <ji...@apache.org> on 2017/08/09 01:12:00 UTC
[jira] [Created] (DRILL-5709) Provide a value vector method to
convert a vector to nullable
Paul Rogers created DRILL-5709:
----------------------------------
Summary: Provide a value vector method to convert a vector to nullable
Key: DRILL-5709
URL: https://issues.apache.org/jira/browse/DRILL-5709
Project: Apache Drill
Issue Type: Improvement
Reporter: Paul Rogers
Assignee: Paul Rogers
Fix For: 1.12.0
The hash agg spill work has need to convert a non-null scalar vector to the nullable equivalent. For efficiency, the code wishes to simply transfer the underlying data buffer(s), and create the required "bits" vector, rather than generating code that does the transfer row-by-row.
The solution is to add a {{toNullable(ValueVector nullableVector)}} method to the {{ValueVector}} class, then implement it where needed.
Since the target code only works with scalars (that is, no arrays, no maps, no lists), the code only handles these cases, throwing an {{UnsupportedOperationException}} in other cases.
Usage:
{code}
ValueVector nonNullableVector = // your non-nullable vector
MajorType type = MajorType.newBuilder(nonNullableVector.getType)
.setMode(DataMode.OPTIONAL)
.build();
MaterializedField field = MaterializedField.create(name, type);
ValueVector nullableVector = TypeHelper.getNewVector(field, oContext.getAllocator());
nonNullableVector.toNullable(nullableVector);
// Data is now in nullableVector
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)