[
https://issues.apache.org/jira/browse/ARROW-1361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16142858#comment-16142858
]
Jacques Nadeau commented on ARROW-1361:
---------------------------------------
I was suggesting something along:
- we make Field into Field<T extends ArrowType>.
- Field's getType() would change to a return type of T
- ValueVector would return Field<? extends ArrowType>
- Each individual vector would return a specific field generic type.
For example,
class NullableTimeStampMicroTZVector {
Field<Timestamp> getField(){..}
}
Given declaration
NullableTimeStampMicroTZVector t = <>;
Then
TimeUnit.MICROSECOND == t.getField().getType().getUnit() would compile without
any special casting and return true.
I find this a much easier thing to code to (especially if using code
generation) as opposed to having specialized method names for each type.
I haven't thought through all the ramifications of this approach but was
throwing it out there.
> [Java] Add minor type param accessors to NullableValueVectors
> -------------------------------------------------------------
>
> Key: ARROW-1361
> URL: https://issues.apache.org/jira/browse/ARROW-1361
> Project: Apache Arrow
> Issue Type: Improvement
> Components: Java - Vectors
> Reporter: Bryan Cutler
> Assignee: Bryan Cutler
>
> A {{NullableValueVector}} creates private copies of each param in the minor
> type, but does not have any way public api to access them. So if given a
> {{NullableValueVector}} you would have to use the {{Field}} and cast to the
> correct type. For example, with a {{NullableTimeStampMicroTZVector}} and
> trying to get the timezone:
> {noformat}
> if field.getType.isInstanceOf[ArrowType.Timestamp] &&
> field.getType.asInstanceOf[ArrowType.Timestamp].getTimezone
> {noformat}
> It would be more convenient to have direct accessors for these type params.
> Also, it is possible to do some minor refactoring because
> {{NullableValueVectors}} does not use these type params, so there is no need
> to store them. They already exist in the inner vector object and the Field
> type.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)