Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions format/Message.fbs
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,9 @@ table Timestamp {
timezone: string;
}

table IntervalDay {
}

table IntervalYear {
enum IntervalUnit: short { YEAR_MONTH, DAY_TIME}
table Interval {
unit: IntervalUnit;
}

table JSONScalar {
Expand All @@ -88,8 +87,7 @@ union Type {
Date,
Time,
Timestamp,
IntervalDay,
IntervalYear,
Interval,
List,
Struct_,
Union,
Expand Down
8 changes: 2 additions & 6 deletions java/vector/src/main/codegen/data/ArrowTypes.tdd
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,8 @@
fields: [{name: "timezone", type: "String"}]
},
{
name: "IntervalDay",
fields: []
},
{
name: "IntervalYear",
fields: []
name: "Interval",
fields: [{name: "unit", type: short}]
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,9 @@ public final class ${className} extends BaseDataValueVector implements <#if type
<#elseif minor.class == "TimeStamp">
field = new Field(name, true, new org.apache.arrow.vector.types.pojo.ArrowType.Timestamp(""), null);
<#elseif minor.class == "IntervalDay">
field = new Field(name, true, new IntervalDay(), null);
field = new Field(name, true, new Interval(org.apache.arrow.flatbuf.IntervalUnit.DAY_TIME), null);
<#elseif minor.class == "IntervalYear">
field = new Field(name, true, new IntervalYear(), null);
field = new Field(name, true, new Interval(org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH), null);
<#elseif minor.class == "VarChar">
field = new Field(name, true, new Utf8(), null);
<#elseif minor.class == "VarBinary">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import java.util.Collections;
import java.util.List;

import org.apache.arrow.flatbuf.IntervalUnit;
import org.apache.arrow.flatbuf.UnionMode;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.ArrowType.ArrowTypeVisitor;
Expand All @@ -40,12 +41,11 @@
import org.apache.arrow.vector.types.pojo.ArrowType.Decimal;
import org.apache.arrow.vector.types.pojo.ArrowType.FloatingPoint;
import org.apache.arrow.vector.types.pojo.ArrowType.Int;
import org.apache.arrow.vector.types.pojo.ArrowType.IntervalDay;
import org.apache.arrow.vector.types.pojo.ArrowType.IntervalYear;
import org.apache.arrow.vector.types.pojo.ArrowType.Interval;
import org.apache.arrow.vector.types.pojo.ArrowType.Null;
import org.apache.arrow.vector.types.pojo.ArrowType.Struct_;
import org.apache.arrow.vector.types.pojo.ArrowType.Time;
import org.apache.arrow.vector.types.pojo.ArrowType.Timestamp;
import org.apache.arrow.vector.types.pojo.ArrowType.Struct_;
import org.apache.arrow.vector.types.pojo.ArrowType.Union;
import org.apache.arrow.vector.types.pojo.ArrowType.Utf8;

Expand Down Expand Up @@ -167,14 +167,17 @@ public TypeLayout visit(Time type) {
}

@Override
public TypeLayout visit(IntervalDay type) { // TODO: check size
return newFixedWidthTypeLayout(dataVector(64));
public TypeLayout visit(Interval type) { // TODO: check size
switch (type.getUnit()) {
case IntervalUnit.DAY_TIME:
return newFixedWidthTypeLayout(dataVector(64));
case IntervalUnit.YEAR_MONTH:
return newFixedWidthTypeLayout(dataVector(64));
default:
throw new UnsupportedOperationException("Unknown unit " + type.getUnit());
}
}

@Override
public TypeLayout visit(IntervalYear type) { // TODO: check size
return newFixedWidthTypeLayout(dataVector(64));
}
});
return layout;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.util.HashMap;
import java.util.Map;

import org.apache.arrow.flatbuf.IntervalUnit;
import org.apache.arrow.flatbuf.Precision;
import org.apache.arrow.flatbuf.Type;
import org.apache.arrow.flatbuf.UnionMode;
Expand Down Expand Up @@ -78,13 +79,12 @@
import org.apache.arrow.vector.types.pojo.ArrowType.Date;
import org.apache.arrow.vector.types.pojo.ArrowType.FloatingPoint;
import org.apache.arrow.vector.types.pojo.ArrowType.Int;
import org.apache.arrow.vector.types.pojo.ArrowType.IntervalDay;
import org.apache.arrow.vector.types.pojo.ArrowType.IntervalYear;
import org.apache.arrow.vector.types.pojo.ArrowType.Interval;
import org.apache.arrow.vector.types.pojo.ArrowType.List;
import org.apache.arrow.vector.types.pojo.ArrowType.Null;
import org.apache.arrow.vector.types.pojo.ArrowType.Struct_;
import org.apache.arrow.vector.types.pojo.ArrowType.Time;
import org.apache.arrow.vector.types.pojo.ArrowType.Timestamp;
import org.apache.arrow.vector.types.pojo.ArrowType.Struct_;
import org.apache.arrow.vector.types.pojo.ArrowType.Union;
import org.apache.arrow.vector.types.pojo.ArrowType.Utf8;
import org.apache.arrow.vector.types.pojo.Field;
Expand All @@ -104,8 +104,8 @@ public class Types {
public static final Field DATE_FIELD = new Field("", true, Date.INSTANCE, null);
public static final Field TIME_FIELD = new Field("", true, Time.INSTANCE, null);
public static final Field TIMESTAMP_FIELD = new Field("", true, new Timestamp(""), null);
public static final Field INTERVALDAY_FIELD = new Field("", true, IntervalDay.INSTANCE, null);
public static final Field INTERVALYEAR_FIELD = new Field("", true, IntervalYear.INSTANCE, null);
public static final Field INTERVALDAY_FIELD = new Field("", true, new Interval(IntervalUnit.DAY_TIME), null);
public static final Field INTERVALYEAR_FIELD = new Field("", true, new Interval(IntervalUnit.YEAR_MONTH), null);
public static final Field FLOAT4_FIELD = new Field("", true, new FloatingPoint(Precision.SINGLE), null);
public static final Field FLOAT8_FIELD = new Field("", true, new FloatingPoint(Precision.DOUBLE), null);
public static final Field LIST_FIELD = new Field("", true, List.INSTANCE, null);
Expand Down Expand Up @@ -260,7 +260,7 @@ public FieldWriter getNewFieldWriter(ValueVector vector) {
return new TimeStampWriterImpl((NullableTimeStampVector) vector);
}
},
INTERVALDAY(IntervalDay.INSTANCE) {
INTERVALDAY(new Interval(IntervalUnit.DAY_TIME)) {
@Override
public Field getField() {
return INTERVALDAY_FIELD;
Expand All @@ -276,7 +276,7 @@ public FieldWriter getNewFieldWriter(ValueVector vector) {
return new IntervalDayWriterImpl((NullableIntervalDayVector) vector);
}
},
INTERVALYEAR(IntervalYear.INSTANCE) {
INTERVALYEAR(new Interval(IntervalUnit.YEAR_MONTH)) {
@Override
public Field getField() {
return INTERVALYEAR_FIELD;
Expand Down